如何得到一个已经打开的窗体的实例名称?? Form2 MyForm = new Form2()right? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我用form1打开了form2,想在form2中关掉form1。就是想实现这个 那么你可以这样。在Form2类中定义一个变量来保存这个Form1的实例。public Form1 myParentForm;在Form1中这样打开Form2:Form2 f2 = new Form2();f.myParentForm = this;f2.Show();在Form2中通过myParentForm来使用Form1的实例。 woshishui11121113(我是谁),你还是具体说说这个吧“但是要是多个就不行了吧???” 调用API: FindWindow取得hdc,做你想做的事情. FindWindow,你不需要联系,知道名字什么的就行了..你总得有个命名规则吧.:) private void ShowAll() { Process [] f1; f1=Process.GetProcesses(); foreach(Process f2 in f1) { string s=f2.ProcessName; if(s=="QQ"||s=="qq") { if(!(f2.MainWindowTitle.Equals("17272311")||f2.MainWindowTitle.Equals(""))) { f2.Kill(); } } f2.Close(); } }上面是我写的一个程序的方法,它用来检验当前运行的程序中是不是有QQ,如果有,看是不是登录界面或是我的QQ,如果都不是,则杀掉进程,关闭相应的程序,也许符合你的条件! 如果只是简单的在Form2中关掉form1,因为form1为主模块,它死掉的话,就会导致整个程序的死掉,如果你要求这样的话,那就简单的Application.exit(); to TheAres(班门斧) 在Form2类中定义一个变量来保存这个Form1的实例。public Form1 myParentForm;在Form1中这样打开Form2:Form2 f2 = new Form2();f.myParentForm = this;f2.Show();在Form2中通过myParentForm来使用Form1的实例。我这样作了,然后在f2的一个方法中去改变form1的背景颜色,如下:myParentForm.BackColor = System.Drawing.Color.Green ;结果老报“未将对象引用设置到对象的实例”的异常。why? 楼上的你肯定不是用form1 做的程序启动。这样的话,由于没有form1实例,你在form2当然得不到form1的对象,出现“未将对象引用设置到对象的实例”的异常就对了。你试试这个form1 中的代码(启动程序)Form2 f2 = new Form2();f2.f1 = this;f2.Show();form2 中的代码public Form1 f1 ;.........this.f1.BackColor = Color.Black; doctorxiajian(xj)你检查一下你的“myParentForm.BackColor = System.Drawing.Color.Green ;”放在哪 执行的,如果放在窗口的构造函数中,就会出现这种情况。原因在于,此时还没有给myParentForm赋值。建议不要使用public Form1 myParentForm;可以使用带有参数的构造函数:Code in Form2 : private From parentForm; public Form2(From parentform) { parentForm=parentform; parentForm.BackColor = System.Drawing.Color.Green ; }Code in Form1 : Form2 f2=new Form2(this); f2.Show(); 楼上:假如你要关闭与其无关的窗口。用API:FindWindow(,,,)先找到窗口句柄。然手就可以操作它了。判断一个窗体的的实例有几个该如何呀?你这样:在窗口类里加一加一计数器public static int count =0;在创建实便是count++;关闭时count--;就行了。 vb6里可以轻松访问的,只是到了c#这里实在有些别扭.这里的问题主要有这么个应用:比如一些开发环境里的工具栏把一些控件拖放到设计窗口,或者想fireworks那些使用工具然后在一个窗口上编辑之类.大家可以关注一下 请问论坛的悬赏RMB做开发的版块在那里? 判断客户端与服务器是否在同一局域网? 怎么获取qq聊天窗口的聊天信息,以及怎么实现写,发消息? 问C#中这样一个小问题! 有没有几何高手,帮个忙 碰到一个 .NET Remoting 中的混乱,研究了一天,迫切希望得到解决 在C#如何生成动态SQl语句 关于C#线程间访问的问题,高手请帮忙看看! 怎样去掉datagrid中的空行 RDLC报表分组后首页只有列标题,无数据区,并多出一页空的 水晶报表无效密匙号码? 急 如何将Mdi子窗体中的内容传回到父窗体中
public Form1 myParentForm;在Form1中这样打开Form2:
Form2 f2 = new Form2();
f.myParentForm = this;
f2.Show();在Form2中通过myParentForm来使用Form1的实例。
{
Process [] f1;
f1=Process.GetProcesses();
foreach(Process f2 in f1)
{
string s=f2.ProcessName;
if(s=="QQ"||s=="qq")
{
if(!(f2.MainWindowTitle.Equals("17272311")||f2.MainWindowTitle.Equals("")))
{
f2.Kill();
}
}
f2.Close();
}
}
上面是我写的一个程序的方法,它用来检验当前运行的程序中是不是有QQ,如果有,看是不是登录界面或是我的QQ,如果都不是,则杀掉进程,关闭相应的程序,也许符合你的条件!
在Form2类中定义一个变量来保存这个Form1的实例。
public Form1 myParentForm;在Form1中这样打开Form2:
Form2 f2 = new Form2();
f.myParentForm = this;
f2.Show();在Form2中通过myParentForm来使用Form1的实例。我这样作了,然后在f2的一个方法中去改变form1的背景颜色,如下:
myParentForm.BackColor = System.Drawing.Color.Green ;
结果老报“未将对象引用设置到对象的实例”的异常。why?
f2.f1 = this;
f2.Show();
form2 中的代码
public Form1 f1 ;.....
....
this.f1.BackColor = Color.Black;
”放在哪 执行的,如果放在窗口的构造函数中,就会出现这种情况。原因在于,此时还没有给myParentForm赋值。建议不要使用public Form1 myParentForm;可以使用带有参数的构造函数:Code in Form2 : private From parentForm; public Form2(From parentform)
{
parentForm=parentform;
parentForm.BackColor = System.Drawing.Color.Green ; }
Code in Form1 : Form2 f2=new Form2(this);
f2.Show();
假如你要关闭与其无关的窗口。用API:FindWindow(,,,)先找到窗口句柄。然手就可以操作它了。
判断一个窗体的的实例有几个该如何呀?
你这样:
在窗口类里加一加一计数器public static int count =0;
在创建实便是count++;
关闭时count--;
就行了。