ComboBox(WinForms with C#)にいくつかの要素があります。アプリケーションの実行時にユーザーが内部の値を変更できないように、コンテンツを静的にしたいのです。また、ユーザーがComboBoxに新しい値を追加したくない
ComboStyleプロパティを使用します。
comboBox.DropDownStyle = ComboBoxStyle.DropDownList;
これは、DropDownSyle
をDropDownList
に変更すると3Dに見え、時には見た目が悪くなるため、私が使用する別の方法です。
このようにComboBoxのKeyPress
イベントを処理することにより、ユーザー入力を防ぐことができます。
private void ComboBox1_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = true;
}
Yowは、プロパティのDropDownStyleをDropDownListに変更できます。これは、フィルターのTextBoxを表示しません。
ComboBox1_KeyPressを試しましたが、文字を削除できます。また、コピーペーストコマンドも使用できます。私のDropDownStyleはDropDownListに設定されていますが、まだ使用できません。そこで、コンボボックスのテキスト編集を回避するために、以下の手順を実行しました。
以下のコードは、削除とバックスペースキーを処理します。また、コントロールキーとの組み合わせも無効にします(例:ctr + Cまたはctr + X)
Private Sub CmbxInType_KeyDown(sender As Object, e As KeyEventArgs) Handles CmbxInType.KeyDown
If e.KeyCode = Keys.Delete Or e.KeyCode = Keys.Back Then
e.SuppressKeyPress = True
End If
If Not (e.Control AndAlso e.KeyCode = Keys.C) Then
e.SuppressKeyPress = True
End If
End Sub
フォームの読み込みでは、下の行を使用してコンボボックスコントロールの右クリックを無効にし、マウスクリックによる切り取り/貼り付けを回避します。
CmbxInType.ContextMenu = new ContextMenu()