Pergunta

É possível desativar a entrada do teclado para um controle? Por exemplo a ListView? Como faço isso? Eu tentei substituir o KeyUp KeyDown Eventos, mas aparentemente não era esse o caminho?

IsEnabled é uma boa solução, no entanto, eu só desejo desativar a interação do teclado e deixar a interação do mouse intacta.

Foi útil?

Solução

Manuseando o KeyDown o evento é tarde demais, mas você pode lidar com o VIGUNDAKEKENDOWN evento e isso deve lhe dar o comportamento que você está procurando:

private void MyListBox_PreviewKeyDown(object sender, KeyEventArgs e)
{
   e.Handled = true;
}

Outras dicas

Caro Maciek, o único thig que você precisa fazer é usar o evento OnKeyDown, basta fazer

private void txtInput_KeyDown(object sender, KeyEventArgs e)
    {
            e.Handled = true; // user can input
            e.Handled = false; // user cannot input
    }

KeyDown geralmente funciona para mim se você fizer o seguinte:

e.Handled = true;
e.SuppressKeyPress = true;

Um exemplo mais completo com uma aplicação prática (desativando a entrada de caracteres não numéricos): http://cccontrols.codeplex.com/sourcecontrol/changeset/view/34146#611536

John faz um bom argumento. Qualquer motivo que você queira desativar a interação com o Control mas não definido Enabled = false?

Editar: Acabei de notar a tag wpf. Não tenho mais tanta certeza da minha resposta, já que sou um odiador do WPF ;-)

Esse é o propósito do WebControl.Enabled = false; Para impedir que ele responda à entrada do usuário.

editar: Agora que a pergunta mudou, desativar o controle não é mais uma solução. No entanto, acho que um controle que responde aos cliques do mouse por não o teclado é Buggy, nem todo mundo prefere usar o mouse.

KeyPressEventArgs.Handled : Recebe ou define um valor indicando se o evento KeyPress foi tratado.

Valor da propriedadeBoolean true Se o evento for tratado; por outro lado, false.

Se você definir e.Handled = true, evento do teclado não é mais despacho.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top