具体流程是这样的,我用ShowDialog()的方式打开对话框后,想通过点击父窗口使其变成活动窗口,主要是我在模式对话框中修改内容时想看下背后窗口里的内容,但这个模式对话框一打开后面的几层窗口就通通点击不了了
我的想法时通过背景窗口的某个事件(如OnCursorChange()事件,不过这个我试过了,没有用),在其事件中写把该窗口变成活动窗口的代码,但我不知道该找什么事件,变成活动窗口的代码又是什么,请各位前辈多多指教~~谢谢

解决方案 »

  1.   

    你可以通过Show(Owner)这个方法来显示一个非模式的窗口到一个指定的窗口上,
    当然也可以直接使用Show()来显示窗口,这样的窗体和打开它的窗口是没有关系的,可以切换到任何一个窗口上,比如:Form2 f = new Form2();
    f.Show();这里不使用ShowDialog();
      

  2.   

    这个我知道的,但是因为打开了很多窗口,所以客户要求目前Dialog窗口必须和父窗口在一起,就是在未关闭Dialog前,点击了父窗口以后模式对话框必须显示在父窗口前.这样的话如果用Show()的方法打开对话框,那在激活父窗口时必须也激活对话框,让对话框显示在父窗口前,请问应该如何自动激活对话框?
      

  3.   

    呵呵,你使用Show(父窗口)就可以了比如:Form1 f = new Form1();
    f.Show(this);//这里就保证了子窗口是父窗口的子窗口而一直会在父窗口前面.
      

  4.   

    或者使用如下的方法为父窗口添加OwnerForm:Form f = new Form();
    this.AddOwnedForm(f);
    f.Show();这个效果和Show(Owner)是一样的.
      

  5.   

    已经解决了,在激活父窗口时也激活对话框只要在父窗口的Activated()事件中调用子窗口的Activate()方法就行了
      

  6.   

    已经解决了,在激活父窗口时也激活对话框只要在父窗口的Activated()事件中调用子窗口的Activate()方法就行了---
    这样太曲线了
    Form.Owner属性就是为解决你的问题而存在的
    只要写上 子Form.Owner=父Form 就可以了,用Show()