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

如何将值从主窗体返回到不同的forms或类(C#)分享

时间:2023-04-10 20:30:18 C#

C#学习教程:如何从主窗体返回值到不同的窗体或类(C#)事情无法实施。我在主窗体中有一个整数计数,我想返回另一个类或窗体。namespacemy_speller{publicpartialclasslogin:Form{publiclogin(){InitializeComponent();}整数计数;privatevoidbtnlogin_MouseUp(objectsender,MouseEventArgse){dbaccessobj=newdbaccess();for(inti=0;i<10;i++){if(txtusername.Text==obj.Usersusername()[i]){count=i;休息;}}}publicintnamecount(){返回计数;}}}dbaccess是另一个类,我可以成功调用该类中定义的函数(Usersusername)到我的登录表单。一切都很好。现在我想将int计数从主窗体返回到dbaccess类。所以我实现了一个公共函数namecount来返回计数。但是在另一个类中,计数始终为零。在主窗体中,我正确地得到了计数值(即i)。但是当我以这种方式从dbaccess类调用时,没有返回任何内容:loginobj=newlogin();//在同一个程序中做一些事情或从其他形式开始,像这样:}privatevoidbutton3_Click(objectsender,EventArgse){loginobj=newlogin();MessageBox.Show(obj.namecount().ToString());}这里消息框应该显示计数,这是一些数字,但它显示为零。可能是什么原因?当我尝试从我的主窗体返回一个字符串时,也会发生同样的事情。它在其他类中总是null吗?提前致谢编辑:你能给自己一个代码片段吗?我不知道您可能会使用哪些技术术语来帮助我此代码将创建您的登录表单的新实例。每个实例都有自己的实例变量计数。登录对象=新登录();MessageBox.Show(obj.namecount().ToString());整数的默认值为0,因此每次创建表单的新实例时,count变量中的值为0。如果希望表单的所有实例都具有相同的计数值,则应将count设为静态。私有静态整数计数;当该变量为静态时,登录表单的所有实例仅共享一个计数实例。varform1=newlogin();//mouseup事件在form1上触发,count的值设置为3(例如)varform2=newlogin();form2.namecount();//返回3取决于你想做什么,还有其他模式,例如使用事件或中介可以帮助在组件之间传递消息。这样,当一个表单发生某些事情时,其他表单可以对更改做出反应,而无需实际引用甚至不知道应用程序中的其他表单。privatevoidbutton3_Click(objectsender,EventArgse){loginobj=newlogin();MessageBox.Show(obj.namecount().ToString());每次调用button3_Click时,都会实例化一个新的登录对象。换句话说,obj不是对您的主窗体的引用;它是对与主窗体类型相同的另一个对象的引用。每次实例化登录对象时,计数默认为零。你在哪里显示表格?您正在做的是代码只是创建登录表单的新实例,并读取nameCount值,该值仍处于其初始化值:0。我认为您应该使用ShowDialog并在DialogResult中返回结果。如果没关系,再读计数值。以上就是C#学习教程的全部内容:如何从主窗体返回值到不同的窗体或类(C#)。如果对你有用,需要进一步了解C#学习教程,希望大家多加关注——本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: