ComboBox
を使用するC#のフォームがあります。ユーザーがC#のComboBox
にテキストを手動で入力できないようにするにはどうすればよいですか?
this.comboBoxType.Font = new System.Drawing.Font("Arial", 15.75F);
this.comboBoxType.FormattingEnabled = true;
this.comboBoxType.Items.AddRange(new object[] {
"a",
"b",
"c"});
this.comboBoxType.Location = new System.Drawing.Point(742, 364);
this.comboBoxType.Name = "comboBoxType";
this.comboBoxType.Size = new System.Drawing.Size(89, 32);
this.comboBoxType.TabIndex = 57;
A B Cだけがオプションになります。
コンボをDropDownListとして設定するだけです:
this.comboBoxType.DropDownStyle = ComboBoxStyle.DropDownList;
DropDownStyleをDropDownListに設定したいと思います。
this.comboBoxType.DropDownStyle =
System.Windows.Forms.ComboBoxStyle.DropDownList;
あなたは付け加えられます e.Handled = true
KeyPressイベントで:
private void Combo1_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = true;
}
コントロールのプロパティウィンドウで、DropDownStyleと等しいDropDownListを作成します。
プロパティDropDownStyleをDropDownListに設定するだけです この図を見てください
手動でアイテムを挿入する機能を維持したいのですが、選択したアイテムをリストにあるものに制限します。このイベントをComboBoxに追加します。 TextではなくSelectedItemを取得する限り、正しい定義済みアイテムを取得できます。 a、b、c。
private void cbx_LostFocus(object sender, EventArgs e)
{
if (!(sender is ComboBox cbx)) return;
int i;
cbx.SelectedIndex = (i = cbx.FindString(cbx.Text)) >= 0 ? i : 0;
}
これにより、コンボボックスの手動入力がロックされ、コンボボックスリストの項目のみが表示されます
this.yourcomboBoxname.DropDownStyle = ComboBoxStyle.DropDownList;