Voglio avere un "solo selezione" ComboBox
che fornisce un elenco di elementi tra cui l'utente può selezionare. La digitazione dovrebbe essere disabilitata nella parte testuale del controllo ComboBox
.
Il mio googling iniziale di questo ha rivelato un suggerimento eccessivamente complesso e fuorviante per catturare l'evento KeyPress
.
Per rendere la parte di testo di un ComboBox non modificabile, impostare la proprietà DropDownStyle su "DropDownList". Il ComboBox è ora essenzialmente solo di selezione per l'utente. Puoi farlo nel designer di Visual Studio o in C # in questo modo:
stateComboBox.DropDownStyle = ComboBoxStyle.DropDownList;
Link alla documentazione per proprietà ComboBox DropDownStyle su MSDN.
Per aggiungere un riferimento alla GUI di Visual Studio, puoi trovare le opzioni DropDownStyle
nelle Proprietà del ComboBox selezionato:
Che aggiungerà automaticamente la riga menzionata nella prima risposta a Form.Designer.cs InitializeComponent()
, in questo modo:
this.comboBoxBatch.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
Rimani su ComboBox e cerca la proprietà DropDropStyle dalla finestra delle proprietà, quindi scegli DropDownList.
COMBOBOXID.DropDownStyle = ComboBoxStyle.DropDownList;
Per continuare a visualizzare i dati nell'input dopo aver selezionato, procedere come segue:
VB.NET
Private Sub ComboBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles ComboBox1.KeyPress
e.Handled = True
End Sub
C#
Private void ComboBox1_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = true;
}