C# 在事件中调用 KeyEvent
C# Call KeyEvent inside an Event
我想从事件中调用 KeyEvent。像...
private void txtPostcode_TextChanged(object sender, EventArgs e)
{
TxtboxNumbersOnly(sender, e);
}
其中 TxtboxNumbersOnly 是一个 KeyEvent。
然而这是不允许的。我也试过投射,但它给出了一个错误。这样做的正确方法是什么?
谢谢,格兰特。下面是一个片段..
private void TxtboxNumbersOnly(object sender, KeyEventArgs e)
{
//Allow arrow keys
switch (e.KeyCode)
{
case Keys.Up:
case Keys.Down:
case Keys.Left:
case Keys.Right:
case Keys.PageUp:
case Keys.PageDown:
case Keys.Delete:
e.SuppressKeyPress = false;
return;
错误是:
Argument2:cannot convert from 'System.EventArgs' to 'System.Windows.Forms.KeyEventArgs'.
看来您一开始就处理了错误的事件。
你不能直接打电话给 TxtboxNumbersOnly
因为你没有 KeyEventArgs
来发送它。而且您无法转换 EventArgs
,因为在这种情况下,它们是两种不同的类型。
您应该处理 TextBox.KeyDown
事件。代码应如下所示:
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyCode)
{
case Keys.Up:
case Keys.Down:
case Keys.Left:
case Keys.Right:
case Keys.PageUp:
case Keys.PageDown:
case Keys.Delete:
e.SuppressKeyPress = false;
return;
}
}
话说回来,我不明白这段代码在做什么...
我想从事件中调用 KeyEvent。像...
private void txtPostcode_TextChanged(object sender, EventArgs e)
{
TxtboxNumbersOnly(sender, e);
}
其中 TxtboxNumbersOnly 是一个 KeyEvent。 然而这是不允许的。我也试过投射,但它给出了一个错误。这样做的正确方法是什么?
谢谢,格兰特。下面是一个片段..
private void TxtboxNumbersOnly(object sender, KeyEventArgs e)
{
//Allow arrow keys
switch (e.KeyCode)
{
case Keys.Up:
case Keys.Down:
case Keys.Left:
case Keys.Right:
case Keys.PageUp:
case Keys.PageDown:
case Keys.Delete:
e.SuppressKeyPress = false;
return;
错误是:
Argument2:cannot convert from 'System.EventArgs' to 'System.Windows.Forms.KeyEventArgs'.
看来您一开始就处理了错误的事件。
你不能直接打电话给 TxtboxNumbersOnly
因为你没有 KeyEventArgs
来发送它。而且您无法转换 EventArgs
,因为在这种情况下,它们是两种不同的类型。
您应该处理 TextBox.KeyDown
事件。代码应如下所示:
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyCode)
{
case Keys.Up:
case Keys.Down:
case Keys.Left:
case Keys.Right:
case Keys.PageUp:
case Keys.PageDown:
case Keys.Delete:
e.SuppressKeyPress = false;
return;
}
}
话说回来,我不明白这段代码在做什么...