C#在一个Event中调用KeyEvent

时间:2015-11-07 02:33:56

标签: c# events keyevent

我想从事件中调用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:无法从'System.EventArgs'转换为'System.Windows.Forms.KeyEventArgs'。

1 个答案:

答案 0 :(得分:1)

您似乎首先处理了错误的事件。

您无法拨打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;
        }
    }

话虽如此,我不知道这段代码在做什么......