gpt4 book ai didi

c# - 转发按键事件

转载 作者:行者123 更新时间:2023-11-30 22:49:33 25 4
gpt4 key购买 nike

我有一个 TextBox 并想转发来自另一个表单的 KeyPress 事件。

到目前为止我有我的表格:

private readonly Action<KeyPressEventArgs> m_KeyPress;

public KeyboardForm( Action<KeyPressEventArgs> keyPress )
{
m_KeyPress = keyPress;
}

protected override void OnKeyPress( KeyPressEventArgs e )
{
m_KeyPress( e );
base.OnKeyPress( e );
}

还有一个派生的 TextBox,它初始化 Form:

var keyboardForm = new KeyboardForm( OnKeyPress );
keyboardForm.Show();

现在,OnKeyPress 方法按预期被调用(从 Form,然后是 TextBox)。但是仍然没有任何反应......当我按下“a”时,我希望我的文本框中出现一个“a”......

有人知道这里的问题是什么吗?

它也不能与 KeyDown 一起使用,并且附加到常规公开事件 KeyPress 也对我没有帮助。我认为,问题是 OnKeyPress 的显式调用。允许吗?

最佳答案

表格 1:

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Form2 f = new Form2();
f.mEvent += new Form2.TestEvent(f_mEvent);
f.Show();
}

void f_mEvent(KeyPressEventArgs e)
{
textBox1.Text += e.KeyChar;
}
}

表格 2:

public partial class Form2 : Form
{
public delegate void TestEvent(KeyPressEventArgs e);
public event TestEvent mEvent;

public Form2()
{
InitializeComponent();
}

protected override void OnKeyPress(KeyPressEventArgs e)
{
if (mEvent != null)
{
mEvent(e);
}
base.OnKeyPress(e);
}
}

关于c# - 转发按键事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1088023/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com