C#学习教程:C#:需要我的一个类触发另一个类的事件来更新文本框虽然我已经编程了一段时间。我有一个包含文本框的类。此类创建从串行端口接收帧的通信管理器类的实例。我对这一切都很好。每次接收到帧并提取其数据时,我希望在我的类中使用文本框运行一个方法,以便将此帧数据附加到文本框。所以,没有发布我所有的代码,我有我的表单类...publicpartialclassForm1:Form{CommManagercomm;publicForm1(){InitializeComponent();comm=newCommManager();}privatevoidupdateTextBox(){//获取新值并更新文本框}...我有我的CommManager类classCommManager{//这里我们管理通讯、接收数据并解析框架}所以...基本上当我解析该框架时,我需要从表单类运行updateTextBox方法。我猜这是一个可能的事件,但我似乎无法让它发挥作用。在像这样创建CommManager实例之后,我尝试向表单类添加一个事件处理程序...comm=newCommManager();comm.framePopulated+=newEventHandler(updateTextBox);...但我一定是做错了什么,因为编译器不喜欢它...有什么想法吗?!您的代码应如下所示:publicclassCommManager(){delegatevoidFramePopulatedHandler(objectsender,EventArgse);公共事件FramePopulatedHandlerFramePopulated;publicvoidMethodThatPopulatesTheFrame(){FramePopulated();}//你剩下的代码在这里。}publicpartialclassForm1:Form{CommManagercomm;publicForm1(){InitializeComponent();comm=newCommManager();comm.FramePopulated+=comm_FramePopulatedHander;}privatevoidupdateTextBox(){//获取新值并更新文本框}privatevoidcomm_FramePopulatedHandler(objectsender,EventArgse){updateTextBox();这是评论中提到的.NET事件命名指南的链接:MSDN-事件命名指南这里有“TheSimplestC#EventExampleImaginable”。publicpartialclassForm1:Form{CommManagercomm;publicForm1(){InitializeComponent();comm=newCommManager();comm.OnFramePopulated+=newEventHandler(updateTextBox);}privatevoidupdateTextBox(objectsender,EventArgsea){//更新文本框}}classCommManager{publicEventHandlerOnFramePopulated;publicvoidPopulateFrame(){OnFramePopulated(this,null);是的——将updateTextBox的签名更改为:privatevoidupdateTextBox(objectsender,Eventargsea)尽管这可能不是最佳设计。如果您编写一个适当的事件处理程序并从那里调用updateTextBox,事情会看起来更整洁...以上是C#学习教程:C#:Needonemyclassestotriggeraneventinanotherclasstoupdatethetext共享的所有内容盒子,如果对大家有用,需要了解更多C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
