Respostas:
Use a propriedade ComboStyle:
comboBox.DropDownStyle = ComboBoxStyle.DropDownList;
combo.Properties.TextEditStyle = DisableTextEditor
Esse é outro método que eu uso, porque mudar DropDownSyle
para DropDownList
faz com que pareça 3D e, às vezes, é simplesmente feio.
Você pode impedir a entrada do usuário manipulando o KeyPress
evento da ComboBox dessa maneira.
private void ComboBox1_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = true;
}
Paste
também. Eu não tenho idéia de como agora.
Paste
você precisará criar um menu de contexto vazio falso e atribuí-lo à ComboBox.
Você pode alterar o DropDownStyle nas propriedades para DropDownList. Isso não mostrará o TextBox para o filtro.
(Captura de tela fornecida por FUSION CHA0S .)
Eu tentei o ComboBox1_KeyPress, mas ele permite excluir o caractere e você também pode usar o comando copy paste. Meu DropDownStyle está definido como DropDownList, mas ainda não serve. Então, fiz o passo abaixo para evitar a edição de texto da caixa de combinação.
O código abaixo lida com a tecla delete e backspace. E também desabilita a combinação com a tecla de controle (por exemplo, ctr + C ou 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
No carregamento de formulários, use a linha abaixo para desativar o botão direito no controle da caixa de combinação para evitar recortar / colar com o clique do mouse.
CmbxInType.ContextMenu = new ContextMenu()