Form2 MyForm = new Form2()right?

解决方案 »

  1.   

    我用form1打开了form2,想在form2中关掉form1。就是想实现这个
      

  2.   

    那么你可以这样。在Form2类中定义一个变量来保存这个Form1的实例。
    public Form1 myParentForm;在Form1中这样打开Form2:
    Form2 f2 = new Form2();
    f.myParentForm = this;
    f2.Show();在Form2中通过myParentForm来使用Form1的实例。
      

  3.   

    woshishui11121113(我是谁),你还是具体说说这个吧“但是要是多个就不行了吧???”
      

  4.   

    调用API: FindWindow取得hdc,做你想做的事情.
      

  5.   

    FindWindow,你不需要联系,知道名字什么的就行了..你总得有个命名规则吧.:)
      

  6.   

    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,如果都不是,则杀掉进程,关闭相应的程序,也许符合你的条件!
      

  7.   

    如果只是简单的在Form2中关掉form1,因为form1为主模块,它死掉的话,就会导致整个程序的死掉,如果你要求这样的话,那就简单的Application.exit();
      

  8.   

    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?
      

  9.   

    楼上的你肯定不是用form1 做的程序启动。这样的话,由于没有form1实例,你在form2当然得不到form1的对象,出现“未将对象引用设置到对象的实例”的异常就对了。你试试这个form1 中的代码(启动程序)Form2 f2 = new Form2();
    f2.f1 = this;
    f2.Show();
    form2 中的代码
    public Form1 f1 ;.....
    ....
    this.f1.BackColor = Color.Black;
      

  10.   

    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();
      

  11.   

    楼上:
    假如你要关闭与其无关的窗口。用API:FindWindow(,,,)先找到窗口句柄。然手就可以操作它了。
    判断一个窗体的的实例有几个该如何呀?
    你这样:
    在窗口类里加一加一计数器public static int count =0;
    在创建实便是count++;
    关闭时count--;
    就行了。
      

  12.   

    vb6里可以轻松访问的,只是到了c#这里实在有些别扭.这里的问题主要有这么个应用:比如一些开发环境里的工具栏把一些控件拖放到设计窗口,或者想fireworks那些使用工具然后在一个窗口上编辑之类.大家可以关注一下