当前位置: 首页 > 编程语言 > C#

窗体间传递数据分享

时间:2023-04-10 22:24:50 C#

窗体间传递数据我的项目中有3个winform,Form3上有个复选框。我希望能够做的是单击此复选框,然后当我退出表单时,对Form1中的复选框进行相同的检查(无论是否选中)。我现有的代码在下面,但它不起作用,我是不是在某处遗漏了一个技巧?谢谢。//Form3Form1setDateBox=newForm1();setDateBox.setNoDate(checkBox1.Checked);//Form1publicvoidsetNoDate(boolisChecked){checkBox1.Checked=isChecked;}几种方法:1–设置Form1变量“setDateBox”存储为Form3的类成员,然后从复选框访问“setNoDate”方法CheckedChanged事件处理程序:privatevoidcheckBox1_CheckedChanged(objectsender,EventArgse){setDateBox.setNoDate(checkBox1.检查);}2–如果不想设置setDateBox存储为类成员,或者需要更新多个表单,可以在Form3中定义一个事件如下:publiceventEventHandlerCheckBox1CheckedChanged;...publicclassCheckedChangedEventArgs:EventArgs{publicboolCheckedState{get;放;}publicCheckedChangedEventArgs(boolstate){CheckedState=state;}}为Form1中的事件创建处理程序:publicvoidForm1_CheckBox1CheckedChanged(objectsender,CheckedChangedEventArgse){//用CheckedStateMessageBox.Show(e.CheckedState.ToString());}在表单创建后分配事件处理程序:Form1setDateBox=newForm1();CheckBox1CheckedChanged+=newEventHandler(setDateBox.Form1_CcheckBox1CheckedChanged);然后从Form3触发事件(当复选框的选中状态发生变化时):希望这有助于checkBox1是Form3的成员,所以从Form1中你不能那样引用它。您可以:在包含复选框的表单设计器中,将其设置为内部或公共。然后您可以从表单对象访问该控件。这是一种快速而肮脏的方式,但它会解决你的问题。ex在form1.designer.cs中存在privateCheckBoxcheckbox1;新的内部CheckBoxcheckbox1;或公共CheckBox复选框1;您正在创建Form1的新实例,而不是引用它的现有实例。Form1setDateBox=(Form1)this.Owner这应该可以解决您的问题。以上就是C#学习教程:窗体间传递数据共享的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权请点击右侧联系管理员删除。如需转载请注明出处: