请教一下委托的事件如何操作窗体控件?
有个WINFORM,里面委托了个监听键盘输入的事件,如何让键盘的输入显示在WINFORM的textbox1里?下面的代码在 Console.WriteLine里可以,但我想更新form1里的一个textbox1的值/
internal class EventReceiver
{
public EventReceiver( KeyInputMonitor monitor )
{
// 产生一个委托实例并添加到KeyInputMonitor产生的事件列表中
monitor.KeyDown += new KeyInputMonitor.KeyDownHandler( this.OnKeyDown );
}
private void OnKeyDown(object sender, KeyEventArgs e)
{
// 真正的事件处理函数
Console.WriteLine( "Capture key: {0}", e.KeyChar );
//这里可以显示出来,但如何显示在TEXTBOX1里?
}
}
public class MainEntryPoint
{
public static void Start()
{
// 实例化一个事件发送器
KeyInputMonitor monitor = new KeyInputMonitor();
// 实例化一个事件接收器
EventReceiver eventReceiver = new EventReceiver( monitor );
// 运行
monitor.Run();
}
}
------解决方案--------------------
this.Invoke(new SetDeviceName(SetDevice));
SetDeviceName是定义的一个委托
SetDevice是改变控件值的方法,你可以在SetDevice()方法里面改变textbox1的值
------解决方案--------------------
就你运行的错误来说:setdevicename是需要定义的
用delegate关键字,你搜一下怎么定义的。
定义完setdevicename,就可以用new setdevicename(setdevice)了