it-swarm-eu.dev

Come posso rendere un ComboBox non modificabile in .NET?

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.

194
Cory Engebretson

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.

360
Cory Engebretson

Per aggiungere un riferimento alla GUI di Visual Studio, puoi trovare le opzioni DropDownStyle nelle Proprietà del ComboBox selezionato:

enter image description here

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;
62
invertigo

Rimani su ComboBox e cerca la proprietà DropDropStyle dalla finestra delle proprietà, quindi scegli DropDownList.

30
LZara

COMBOBOXID.DropDownStyle = ComboBoxStyle.DropDownList;

2

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;
}
1
Diogo Rodrigues