无法在用户控件中获取 KeyPressEventHandler
本文关键字:获取 KeyPressEventHandler 控件 用户 | 更新日期: 2023-09-27 18:31:11
来自我看到的有关如何创建键盘用户控件的网站 单击此处获取链接
.我成功地在工具中添加了控件。,然后在表单 UI 中拖动一个。当我开始点击数字时。提升按钮被触发:
private void btn1_click(object sender,eventargs e)
{
RaiseButton('1');
}
和在其他用户控件上。有这个方法
public event KeyPressHandler IsPressed;
public void RaiseButton(char Tosend)
{
KeyPressEventHandler handle = IsPressed;
handle(this,new KeypressEventArgs(Tosend));
}
类按键处理程序被压出的值为空 所以它不能写入文本框。现在我的问题是,我是否错过了使按键事件处理程序为空的东西?
请告知谢谢
IsPressed 事件为 null,因为没有为其注册任何内容。注册该事件后,它将不再为空。首先检查事件是否为 null。此外,您无需将其分配给变量。
public void RaiseButton(char Tosend)
{
if (IsPressed != null)
{
IsPressed(this,txtbox.text);
}
}
我现在解决了。我太愚蠢了,我在窗体中使用的事件与我在用户控件中使用的事件不同。用户控件中的 public event KeyPressEventHandler IsPressed
事件也必须在窗体中使用。为了能够注册这个,在您的窗体上,您要在其中使用该控件。单击用户控件并查看事件属性,或者仅单击属性中的雷声符号。寻找事件被压制,现在你很好去。双击并输入要为事件执行的代码。@wlemond谢谢你给我举个例子。
干杯:)