首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

请问一下委托的事件怎么操作窗体控件

2012-04-19 
请教一下委托的事件如何操作窗体控件?有个WINFORM,里面委托了个监听键盘输入的事件,如何让键盘的输入显示

请教一下委托的事件如何操作窗体控件?
有个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)了

热点排行