黑马程序员技术交流社区

标题: 带参数的 ShowDialog(IWin32Window) [打印本页]

作者: 心灵苦旅    时间: 2014-3-25 14:02
标题: 带参数的 ShowDialog(IWin32Window)
本帖最后由 心灵苦旅 于 2014-3-27 17:01 编辑

一般使用ShowDialog的时候,都是没有带参数的,那带参数的和不带参数的有什么区别呢?
这种带参数的 ShowDialog(IWin32Window) 具体用法是什么,用在什么场合?

作者: mdb    时间: 2014-3-25 15:53
这个参数其实就是传一窗口进去,传进去的窗口就是这个窗口的主窗口,如果你想改变主窗口的一些值那么可以加上参数,写一小段测试代码,想让子窗口在显示后关闭时修改主窗口的窗口标题,那么就可以将主窗口作为参数传进去,然后再进行修改。
  1. private void button1_Click(object sender, EventArgs e)
  2.         {
  3.             Form f1 = new Form();
  4.             f1.Text = "这是子窗口";
  5.             f1.FormClosed += new FormClosedEventHandler(f1_FormClosed); // 关闭窗口时执行的代码
  6.             f1.ShowDialog(this);// this就是当前显示的窗口
  7.         }

  8.         void f1_FormClosed(object sender, FormClosedEventArgs e)
  9.         {
  10.             Form f = sender as Form;// 将参数转成窗体对像,这个对像是子窗口
  11.             f.Owner.Text = f.Text;// f.Owner就是传进来的this对像
  12.         }
复制代码

在主窗口点按钮后会f1子窗口会显示出来,关闭子窗口时就会看到主窗口的标题已经被改成"这是子窗口"了
作者: 心灵苦旅    时间: 2014-3-25 16:26
mdb 发表于 2014-3-25 15:53
这个参数其实就是传一窗口进去,传进去的窗口就是这个窗口的主窗口,如果你想改变主窗口的一些值那么可以加 ...

明白了,谢谢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2