C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ListBoxをクリックしただけでプルダウン表示する


(過去ログ 106 を表示中)

[トピック内 1 記事 (1 - 1 表示)]  << 0 >>

■63557 / inTopicNo.1)  ListBoxをクリックしただけでプルダウン表示する
  
□投稿者/ howling (3回)-(2012/09/06(Thu) 19:25:11)

分類:[.NET 全般] 

こんばんわ。howlingです。
いつもお世話になっております。

さて、今回はPropertyGrid上での話になります。
何かしらの項目を選択した際にListBoxを表示するように

//using System.ComponentModel;
[EditorAttribute(typeof(StringEditor), typeof(System.Drawing.Design.UITypeEditor))]
public EnumString HogeStr
{
    get { return hogeStr;}
    set { hogeStr = value; }
}

のように設定を行っております。

StringEditorクラスでは、

//using System.Windows.Forms;
//using System.Windows.Forms.Design;
public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context)
{
    return UITypeEditorEditStyle.DropDown;
}
public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
{
    if (provider != null)
    {
         IWindowsFormsEditorService clsEditorService = ((IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService)));
         ListBox list = new ListBox();
         list.Items.Add("ほげ");
         list.Items.Add("ふにゃ");

         list.SelectedValueChanged += new EventHandler(list_SelectedValueChanged); //ListBoxを閉じるだけのイベントを追加
         clsEditorService.DropDownControl(list);
         
         if (list.SelectedItem != null)
         {
              value = list.SelectedItem.ToString();
         }
    }
    return value;
}

のようにコーディングしております。

ですが、これですと項目を選択後、
プルダウンメニューは項目の右側に出てくる下矢印のボタンを押さないと表示されません。
(ただ選択するだけだと、テキストを変更するようにフォーカスが合った状態になってしまいます。)

これを、できれば項目を選択時に即表示したいと思っておりますが、
何かを変更すれば表示できるようになるのでしょうか?

調べ方が悪いのかどうにも見当たりませんでしたので、
教えて頂けますと幸いです。

宜しくお願い致します。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -