Eu tenho alguns elementos em uma caixa de combinação (WinForms com c #). Quero que o conteúdo deles seja estático, para que um usuário não possa alterar os valores internos quando o aplicativo for executado. Também não quero que o usuário adicione novos valores à ComboBox
157
combo.Properties.TextEditStyle = DisableTextEditor
Esse é outro método que eu uso, porque mudar
DropDownSyle
paraDropDownList
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.fonte
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 .)
fonte
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)
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.
fonte