8 个解决方案
#1
看看是不是form2.Close时销毁了资源
#2
form2被close后,form2的参数肯定传不到form1了。只能form2传完参数,再close。
#3
this.close()就关闭窗体了,窗体上的那些textbox,combobox,button之类的控件也全部被释放,form2只剩下一个空壳,如果你在form1中取了form2的控件的状态,肯定是取不到了,因为close之后控件被释放,状态也被清除,
你可以用简单的数据来传递,比如string,int, double,list,linkedlist,dictionary等,非界面对象来保存需要传递的值,可以在form2.OnClose中把控件中的值取出来放到这些简单数据类型中,然后form1访问这些简单数据类型,就可以了,
你可以用简单的数据来传递,比如string,int, double,list,linkedlist,dictionary等,非界面对象来保存需要传递的值,可以在form2.OnClose中把控件中的值取出来放到这些简单数据类型中,然后form1访问这些简单数据类型,就可以了,
#4
传值写的有问题
#5
新建一个类,将form2要传的值保存起来,form1直接调用那个类
#6
form2已经关闭了。
#7
Form4 f = new Form4();
if (f.ShowDialog() == DialogResult.OK)
{
string s = f.GetString();
}
if (f.ShowDialog() == DialogResult.OK)
{
string s = f.GetString();
}
#8
我才用了事件委托的办法解决了,非常感谢给位的指点!
#1
看看是不是form2.Close时销毁了资源
#2
form2被close后,form2的参数肯定传不到form1了。只能form2传完参数,再close。
#3
this.close()就关闭窗体了,窗体上的那些textbox,combobox,button之类的控件也全部被释放,form2只剩下一个空壳,如果你在form1中取了form2的控件的状态,肯定是取不到了,因为close之后控件被释放,状态也被清除,
你可以用简单的数据来传递,比如string,int, double,list,linkedlist,dictionary等,非界面对象来保存需要传递的值,可以在form2.OnClose中把控件中的值取出来放到这些简单数据类型中,然后form1访问这些简单数据类型,就可以了,
你可以用简单的数据来传递,比如string,int, double,list,linkedlist,dictionary等,非界面对象来保存需要传递的值,可以在form2.OnClose中把控件中的值取出来放到这些简单数据类型中,然后form1访问这些简单数据类型,就可以了,
#4
传值写的有问题
#5
新建一个类,将form2要传的值保存起来,form1直接调用那个类
#6
form2已经关闭了。
#7
Form4 f = new Form4();
if (f.ShowDialog() == DialogResult.OK)
{
string s = f.GetString();
}
if (f.ShowDialog() == DialogResult.OK)
{
string s = f.GetString();
}
#8
我才用了事件委托的办法解决了,非常感谢给位的指点!