winform开发(如何知道一个类是否实例化过,主要是form窗体类)
如题:我想实现一个多窗体的程序,主窗体中有多个子窗体,每个子窗体都只能打开一次。打开过的下次再打开就把上次打开的窗体类显示在最前台。但不知怎么判继这个子窗体的类是否实例化过,各位有什么好方法吗?
已前用vb6里面用forms能很好的解决,.net里有什么类似的方法吗?(最近看到.net2005中的vb2005里有一个MY.open什么的参数可以实现,.net2003怎么实现呢?)不知我说的够不够清楚。
问题点数:50、回复次数:12Top
1 楼xuchi(赤色六芒星)回复于 2005-04-04 14:43:02 得分 10
判断是否等于null。Top
2 楼mqmmx(魂之结界)回复于 2005-04-04 14:52:20 得分 0
能具体些吗?Top
3 楼turbomagic(蓝天鹅)回复于 2005-04-04 14:57:01 得分 5
最简单的办法,把这些窗体声明为全局静态类,并用一个全局静态数组来给这些类记数.如果某个窗体已经实例化,则0->1,撤消则1-0.依此类推.给我加分吧!Top
4 楼jialiang(≈≈逆水行舟≈≈)回复于 2005-04-04 14:57:25 得分 5
判断该对象是否等于null,等于null表示未实力化,否则为已经实力化Top
5 楼yufenfeila(雨纷飞啦)回复于 2005-04-04 14:59:47 得分 10
public Form2 f2;
private void button1_Click(object sender, System.EventArgs e)
{
if (f2 == null)
{
f2 = new Form2();
f2.Show();
}
else
{
f2.Show();
f2.Focus();
}
}Top
6 楼xuchi(赤色六芒星)回复于 2005-04-04 15:03:41 得分 5
if (frm == null)
{
frm = new Frmclass();
}
frm.ShowDialog();Top
7 楼athossmth(athos)回复于 2005-04-04 15:05:00 得分 5
' Visual Basic .NET
Function PrevInstance() As Boolean
If Ubound(Diagnostics.Process.GetProcessesByName(Diagnostics.Process.GetCurrentProcess.ProcessName)) > 0 Then
Return True
Else
Return False
End If
End FunctionTop
8 楼athossmth(athos)回复于 2005-04-04 15:07:46 得分 0
http://msdn.microsoft.com/library/en-us/vbcon/html/vbconprevinstancepropertychangesinvisualbasicnet.aspTop
9 楼meixiaofeng(yesmsn)回复于 2005-04-04 15:10:41 得分 0
倒数第二楼的方法不错Top
10 楼mqmmx(魂之结界)回复于 2005-04-04 15:41:57 得分 0
athossmth(athos)这个方法怎么用,vb6里的app.PrevInstance到是知道,是判断当前工程是否在内存中有一个副本。但用这个方法怎么知道窗体中的类是否在内存里有副本呢,你能给段代码吗?Top
11 楼tf(菜鸟)回复于 2005-04-04 15:45:01 得分 5
在那个类里面加一个static变量啊
然后在构造函数里面改变值就好了啊Top
12 楼conan19771130(残疾人程序员,学习第2门外语)回复于 2005-04-04 16:52:05 得分 5
null就好了啊,不懂Top




