2010/11/02

access2010 Ribbon dropDown comboBox


まずは、コントロールからの情報を取得
dropDownはonActionコールバックプロシージャで、comboBoxはonChangeで。
dropDownからは、itemID(String)/itemIndex(Integer)が取得できる。いずれかを使用するかは自由、どちらとも使うのも自由。コレクションからitemを作っているならindexが手早いかもと思うくらい。
selectedItemIndexまたはselectedItemIDで選択された状態にすることはできるが、このときonActionは発生しない。まぁ当たり前だけど、何が起こるか分からないし。
comboBoxは、editBoxも同じなんだけど、コントロール内の文字列が取得できる。
動画終盤でcomboBoxの挙動がちょっとあやしいと感じた。意図的にInvalidateしても、いったんは更新されるが、フォームを閉じ再び開いたときには更新される前の状態に戻っている。この状態が発生するのは、itemを選択時/itemLabelと同じ手投入をした時。デグレとは思えないので、調査中。

getItemCount
コントロール内のアイテム数を通知。アイテムの数だけgetItem○○が実行される。
0 → (itemCount - 1)
getItemID/getItemLabel
コールバックで通知してくるindexを基にitemID(String)を渡す
getItemImage
indexを基にイメージを渡していけばいいのだけど、2つの手段がある。imageMsoで使われる名前か画像データを渡してあげる。pngとか透過を使ったデータがすんなり渡せればいいのだけど、GDI+とか使わないとダメことがあるので、基本的にはやらない方向で検討する。

invalidateContentOnDrop
office2010から使用できる属性
その名の通り、ドロップしたときにコンテンツを無効化にするということだが、comboBoxドロップした時アイテムが更新されるということ。特段のInvalidateを必要としない。trueで発生。

要素:dropDown/comboBox
コールバック:onAction/onChange/getItemCount/getItemID/getItemLabel/getItemImage/getSelectedItemIndex/getSelectedItemID/getText
属性:invalidateContentOnDrop

0 件のコメント: