Prezados Colegas
Criei um componente USER CONTROL SILVERLIGHT criei algumas propriedades e uma delas determina que neste COMBOBOX EDITÁVEL será apenas permitida a digitação de números.
Pesquisando, consegui montar o código, e teoricamente só consigo digitar números, salvo o bug que encontrei:
Se eu digitar os caracteres ´, `, ^, ~ e ¨ (reparem que são os acentos) e pressionar uma tecla numérica, o caracter de acento aparece e o número também Ex: ^3.
Abaixo, segue o código do override do evento OnKeyDown onde trato o que é digitado
protected override void OnKeyDown(KeyEventArgs e)
{
base.OnKeyDown(e);
//Fixa a digitação apenas de números
if (ncSomenteNumero == true)
{
//Trata o shift
if (Keyboard.Modifiers == ModifierKeys.Shift)
{
e.Handled = true;
}
// Trata as teclas
if (!e.Handled && (e.Key < Key.D0 || e.Key > Key.D9))
{
if (e.Key < Key.NumPad0 || e.Key > Key.NumPad9)
{
if (e.Key != Key.Back)
{
e.Handled = true;
}
}
}
}
else
{
e.Handled = false;
}
}
Por favor amigos, se alguém puder me dar uma orientação agradeço imensamente!
Abraço a todos
Eduardo Agostinho Analista Programador - C# Developer