KeyDown op form stopt na button clicked

Status
Niet open voor verdere reacties.

phobia

Terugkerende gebruiker
Lid geworden
4 sep 2006
Berichten
1.777
Ik heb een Numpad formpje gemaakt.
Als ik met de muis de button click werkt het geweldig.

Ook als ik de NumPad open en begin met het typen op mijn keyboard werkt het ook zoals ik verwacht.

Maar nu komt het. Als ik een keer met mijn muis op een button heb geclicked, dan werkt de KeyDown event niet meer welke ik op mijn Form heb gezet.

En ik heb geen idee hoezo dat is.
Ik heb al geprobeerd om de focus terug te zetten op mijn form na het clicken van de button, maar dat doet ook niks.

Button event:
[CPP]
private void button_Click(object sender, EventArgs e)
{
Button thisBTN = (Button)sender;

string thisTag = thisBTN.Tag.ToString();
switch (thisTag.ToLower())
{
case "enter":
this.DialogResult = DialogResult.OK;
this.Close();
break;
case "clear":
_thisText.Text = "0";
this.Focus();
break;
case "-":
if(_thisText.Text.StartsWith("-"))
_thisText.Text = _thisText.Text.Substring(1);
else
_thisText.Text = "-" + _thisText.Text;
break;
case "+":
if (_thisText.Text.StartsWith("-"))
_thisText.Text = _thisText.Text.Substring(1);
break;
case "back":
string _new = null;
string text = _thisText.Text;
string _pre = "";
if (text.StartsWith("-"))
{
_pre = "-";
text = text.Substring(1);
}
if (text.Length > 1)
{
_new = text.Substring(0, (text.Length - 1));
}
else if (text.Length == 1)
{
_new = "0";
}
_thisText.Text = _pre + _new;
break;
default:
string oldText = _thisText.Text;
string prefix = "";
if (oldText.StartsWith("-"))
{
prefix = "-";
oldText = oldText.Substring(1);
}

if (oldText == "0") oldText = "";
_thisText.Text = prefix + oldText + thisTag;
break;
}

}
[/CPP]

Form KeyDown event:
[CPP]
private void NumPad_KeyPress(object sender, KeyEventArgs e)
{
int value = e.KeyValue;
e.Handled = true;
Console.WriteLine("Key: " + value);
if (e.KeyData.ToString().StartsWith("NumPad"))
{
value = value - 48;
}
Keys pressed = e.KeyCode;
if ( (pressed < Keys.D0
|| pressed > Keys.D9
|| pressed < Keys.NumPad0
|| pressed > Keys.NumPad9
|| KeysAllowed.Contains(pressed) ) == false)
{
Console.WriteLine("Key NOT allowed: " + (char)e.KeyValue);
return;
}
string _new = null;

switch (pressed)
{
case Keys.Enter:
this.DialogResult = DialogResult.OK;
this.Close();
break;
case (Keys.Escape):
_thisText.Text = "0";
break;
case Keys.Subtract:
if (_thisText.Text.StartsWith("-"))
_thisText.Text = _thisText.Text.Substring(1);
else
_thisText.Text = "-" + _thisText.Text;
break;
case Keys.Add:
if (_thisText.Text.StartsWith("-"))
_thisText.Text = _thisText.Text.Substring(1);
break;
case Keys.Back:
Console.WriteLine("Backspace");
string text = _thisText.Text;
string _pre = "";
if(text.StartsWith("-"))
{
_pre = "-";
text = text.Substring(1);
}
if (text.Length > 1)
{
_new = text.Substring(0, (text.Length - 1));
}
else if (text.Length == 1)
{
_new = "0";
}
_thisText.Text = _pre + _new;
break;
case Keys.Delete:
_thisText.Text = "0";
break;
default:
string oldText = _thisText.Text;
string prefix = "";
if (oldText.StartsWith("-"))
{
prefix = "-";
oldText = oldText.Substring(1);
}

if (oldText == "0") oldText = "";
_thisText.Text = prefix + oldText + (char)value;
break;
}
}
[/CPP]
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan