none
Controlar NumLock no WPF e outros problemas com teclado Numericos RRS feed

  • Pergunta

  • Opa.. gente alguem ai ja teve que trabalhar apenas com um teclado numerico (aqueles usb, de 16 teclas) ?

    Eu to com uns problemas...
    1 - Como alterar o NumLock para que fique sempre ligado atraves do WPF .. (to querendo evitar ficar chamando API do Windows ok ?)

    2 - Se não for possivel... alguem sabe pq meu evento KeyDown ignora as teclas: Home, Insert, Delete, End, PgDn, PgUp, Left, Right, Top e Down ?!?!?! pior q ironicamente a Clear (NumPad5) ele reconhece... so as outras que nao .... ate tentei fazer um tratamento para caso o NumLock teje desligado ele "entender" a tecla correta mas nem virou....

    3 - Colocar uma mensangem para o usuario verificar se o NumLock esta ligado (sei q posso ver isso pelo Console.NumberLock) tambem é inviavel... o sistema vai ser usado por algumas milhares de pessoas e muitos provavelemente nunca teria mexindo num micro... quanto mais saber o que é um NumLock ><

    Valeu gente...
    What would Brian Boitano do ?
    ((2B || !2B) is Question) ?
    sexta-feira, 8 de janeiro de 2010 16:35
    Moderador

Todas as Respostas

  • Para facilitar.... ate achei uma forma que ta funcionando.... mas particulamente eu odiei ><

    Não tem um jeito melhor nao ???
            void Identificando_PreviewKeyDown(object sender, KeyEventArgs e) {
                e.Handled = true;
    
                var simbols = new int[3] {3, 7, 11};
                switch (e.Key) {
                    case Key.Insert:
                    case Key.NumPad0:
                        cpfTextBox.Text += "0";                    
                        break;
    
                    case Key.End:
                    case Key.NumPad1:
                        cpfTextBox.Text += "1";
                        break;
    
                    case Key.Down:
                    case Key.NumPad2:
                        cpfTextBox.Text += "2";
                        break;
    
                    case Key.PageDown:
                    case Key.NumPad3:
                        cpfTextBox.Text += "3";
                        break;
    
                    case Key.Left:
                    case Key.NumPad4:
                        cpfTextBox.Text += "4";
                        break;
    
                    case Key.Clear:
                    case Key.NumPad5:
                        cpfTextBox.Text += "5";
                        break;
    
                    case Key.Right:
                    case Key.NumPad6:
                        cpfTextBox.Text += "6";
                        break;
    
                    case Key.Home:
                    case Key.NumPad7:
                        cpfTextBox.Text += "7";
                        break;
    
                    case Key.Up:
                    case Key.NumPad8:
                        cpfTextBox.Text += "8";
                        break;
    
                    case Key.PageUp:
                    case Key.NumPad9:
                        cpfTextBox.Text += "9";
                        break;
    
                    case Key.Subtract:
                        if (!String.IsNullOrEmpty(cpfTextBox.Text))
                            cpfTextBox.Text = cpfTextBox.Text.Remove(cpfTextBox.Text.Length - 1);
                        break;
    
                    case Key.Return:
                        this.ValidarCpf();
                        break;
                }
    
                if (e.Key != Key.Subtract && simbols.Contains(cpfTextBox.Text.Length)) {
                    cpfTextBox.Text += cpfTextBox.Text.Length == 11 ? "-" : ".";
                }
    
                cpfTextBox.SelectionStart = cpfTextBox.Text.Length;
            }

    What would Brian Boitano do ?
    ((2B || !2B) is Question) ?
    sexta-feira, 8 de janeiro de 2010 17:17
    Moderador
  • Hi,

    Rui... voce resolveu esse problema?

    Se sim posta ai pra outros com problemas parecido terem uma ideia.

    por enquanto vou marcar sua resposta acima.

    Att,


    Adriel Codeco Silva

    sexta-feira, 4 de março de 2011 01:46
    Moderador
  • Hi,

    Rui... voce resolveu esse problema?

    Se sim posta ai pra outros com problemas parecido terem uma ideia.

    por enquanto vou marcar sua resposta acima.

    Att,


    Adriel Codeco Silva

     

     

    Não Adriel.... na verdade esse projeto foi para na geladeira então não olhei mais para ele :S

    terça-feira, 8 de março de 2011 17:50
    Moderador