トップ回答者
(Office)RibbonDropDownItemのClickを取得したい

質問
-
いつも参考にさせていただいています。
OfficeのRibbonのTabにメニューを作るためにアドバイスいただけませんでしょうか。
環境など:VisualStudio Professional 2013、.NetFramework4.0、C#
やりたいことは、
- Ribbonにデザイナーでギャラリーを配置
- 配置したギャラリーにアイテムを追加
- それぞれのアイテムにLabelとImageを設定
- それぞれのアイテムがクリックされた場合の処理を設定(←ここをどうしたらいいのかわかりません)
です。
現状、下のようなコードを書いています。
private void Ribbon1_Load(object sender, RibbonUIEventArgs e) { this.gallery1.Label = "check"; RibbonDropDownItem item = this.Factory.CreateRibbonDropDownItem(); item.Label = "new item"; item.Image = Properties.Resources.pic; this.gallery1.Items.Add(item); }
RibbonDropDownItemにはClickのようなものが見当たりません。
RibbonGalleryにはClickを設定できるのですが、どのitemがクリックされたか判別できないため、処理を分岐できません。
メニューに画像を配置できれば良いという考えで作っているため、RibbonDropDownItemやRibbonGalleryにこだわっているわけではありません。
アドバイスをいただけませんでしょうか?
よろしくお願いします。
- 編集済み kkkokkk 2015年3月25日 8:28
回答
すべての返信
-
Tak1wa様
ご返信ありがとうございます。
おっしゃる通り、SelectedItemプロパティで分岐できました!
ありがとうございました。
private void Ribbon1_Load(object sender, RibbonUIEventArgs e) { this.gallery1.Label = "check"; for(int i=0;i<5;i++) { RibbonDropDownItem item = this.Factory.CreateRibbonDropDownItem(); item.Label = "new item" + i.ToString(); item.Image = Properties.Resources.pic; this.gallery1.Items.Add(item); } this.gallery1.Click += new RibbonControlEventHandler(gallery1_ButtonClick); } void gallery1_ButtonClick(object sender, RibbonControlEventArgs e) { String label = this.gallery1.SelectedItem.Label; switch(label) { case "new item0": MessageBox.Show("selected 0"); break; case "new item1": MessageBox.Show("selected 1"); break; default: break; } }