it-swarm-pt.tech

Como posso fazer um ComboBox não-editável no .net?

Eu quero ter um "select-only" ComboBox que fornece uma lista de itens para o usuário selecionar. A digitação deve ser desabilitada na parte de texto do controle ComboBox.

Meu googling inicial disso resultou em uma sugestão excessivamente complexa e equivocada para capturar o evento KeyPress.

194
Cory Engebretson

Para tornar a parte de texto de um ComboBox não editável, defina a propriedade DropDownStyle como "DropDownList". A ComboBox agora é essencialmente apenas para o usuário. Você pode fazer isso no designer do Visual Studio ou em C # assim:

stateComboBox.DropDownStyle = ComboBoxStyle.DropDownList;

Link para a documentação da propriedade ComboBox DropDownStyle no MSDN.

359
Cory Engebretson

Para adicionar uma referência da GUI do Visual Studio, você pode encontrar as opções DropDownStyle nas Propriedades da ComboBox selecionada:

enter image description here

Que adicionará automaticamente a linha mencionada na primeira resposta ao Form.Designer.cs InitializeComponent(), da seguinte forma:

this.comboBoxBatch.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
61
invertigo

Permaneça na sua caixa de combinação e pesquise a propriedade DropDropStyle na janela de propriedades e escolha DropDownList.

30
LZara

COMBOBOXID.DropDownStyle = ComboBoxStyle.DropDownList;

2
Abhishek Jaiswal

Para continuar exibindo dados na entrada após a seleção, faça isso:

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