事件内部的C#调用KeyEvent

本文关键字:调用 KeyEvent 内部 事件 | 更新日期: 2023-09-27 18:21:07

我想从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:无法从"System.EventArgs"转换为"System.Windows.Forms.KeyEventArgs".

事件内部的C#调用KeyEvent

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

你不能只是去调用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;
        }
    }

话虽如此,我不明白这个代码在做什么。。。