日期:2014-05-19  浏览次数:20814 次

类间变量使用问题
在From1中textBox1中的内容赋给了字符串filename;
在From2中我想使用filename
(此时Form1已关闭)
我的方法是在From2中新声明了一个From1对象   form11;
然后赋给string   filen=form11.filename;
可监视变量filen   显示为null
请问该如何调用?

------解决方案--------------------
第一个Form1的实例已经关闭,新生成一个是没有办法得到它的实例信息的,可以采用静态变量来保存,或者采用另一个全局唯一的类来保存这些信息(我更喜欢采用这种方法)。
------解决方案--------------------
1.创建一个类,里面有一个静态属性如:
public class infoClass
{

private static string userID= " ";
public static string UserID
{
get
{return userID;
}
set
{
userID=value;
}
}
这个infoClass.UserID可以在任何一个窗口里面使用。

2.寫在xml的配置文件中
------解决方案--------------------
from1.close()但是还没有from1.dispose()时filename的值还存在

dispose后,那个对象就被摧毁了,你再次实例化的时候,此from1已经不是彼from1了

关于这点,你应该继续好好的学习面向对象程序设计的理论。


根据我对你问题描述的理解,你可以这样解决
public class form2 : from
{
private string filen;
//...
//Other Codes
//...
private void btn_click(object sender,eventargs e)//假设按下btn按钮时打开from1
{
form1 frm = new from1();
frm.Show();
filen = frm.filename;
frm.Dispose();
}
}

public class from1 : from
{
public string filename;
//...
//Other Codes
//...
private void btn_click(object sender,eventargs e)//假设按下btn按钮时关闭from1
{
filename = textBox1.Text;
this.Close();
}
}

------解决方案--------------------
一般都是采用静态全局变量