C# - よく使うクラス - System.Windows.Forms - ComboBox

 クラウディア
1. 概要
2. キー入力不可

1. 概要

 一応、念のため、「ComboBox」とは、こんなの → 。  本ページは、下記のサイトを参考にさせていただきました。
ComboBox クラス (System.Windows.Forms)」
「コンボボックス(ComboBoxコントロール)を読み取り専用にするには?[C#、VB]:.NET TIPS」
「ComboBox が上下矢印キーで項目を変更できないようにする - .NET Tips (VB.NET,C#...)
 基本的なとこは、ここでは、今んとこ、述べません・・・。

2. キー入力不可

 デフォルトの状態だと、「ComboBox」の中身の値をキー入力して変更できます。  これを読み取り専用にするには、対象の「ComboBox」の「DropDownStyle」プロパティへ「DropDownList」を設定します。  しかし、これだと、「ComboBox」の選択肢の中に「a」「A」ではじまる値があったときに、「ComboBox」選択中に a を入力すると、「a」「A」ではじまる最上位の値が選択されます。  これも、禁止するには、「ComboBox」へのキー入力のイベントをキャッチして、無効化してやります。  つまり、「ComboBox」の「KeyPress」イベントに下記のメソッドを割り当てます。

private void ComboBox_KeyPress(object sender, KeyPressEventArgs e)
{
	e.Handled = true;
}
 さらに、「ComboBox」の「KeyDown」「KeyUp」イベントに下記のメソッドを割り当てます。

private void ComboBox_KeyDown(object sender, KeyEventArgs e)
{
	e.Handled = true;
}