以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 Dot NET,C#,ASP,VB 』  (http://bbs.xml.org.cn/list.asp?boardid=43)
----  C#子窗口关闭时怎样立刻刷新主窗口  (http://bbs.xml.org.cn/dispbbs.asp?boardid=43&rootid=&id=79582)


--  作者:卷积内核
--  发布时间:1/20/2010 5:19:00 PM

--  C#子窗口关闭时怎样立刻刷新主窗口
问题:

子窗口修改了名字,输入了新的名字后,点OK关闭子窗口,但此时要求关闭子窗口后,主窗口的名字也要及时更新为新改的名字。在子窗口里面又不能直接调用主窗口的控件的.text属性。

回答:
1。如果使用的是MDI父子窗体,可以在关闭子窗体前加入
    TextBox tb = (TextBox)MdiParent.Controls["textBox1"];   // 从MDI父窗体获得控件    
tb.Text = textBox1.Text;       // 更新MDI父窗体空间属性值
2。如果使用的是直接创建的窗体,并且是关联窗体(使用了Owner),可以在关闭子窗体前加入    
TextBox tb = (TextBox)OwnerForm.Controls["textBox1"];   // 从Owner窗体获得控件   
tb.Text = textBox1.Text;       // 更新Owner窗体空间属性值
3。如果使用的是直接创建的窗体,并且没有该窗体与创建它的窗体没有关联关系,可以首先对被创建的窗体增加一个属性:   
public Form father = null;
在新窗体实例化时加入(创建引用关系)    
form.father = this;
在关闭子窗体前加入    
TextBox tb = (TextBox)father.Controls["textBox1"];   // 从MDI父窗体获得控件    tb.Text = textBox1.Text;       // 更新MDI父窗体空间属性值

OK,还有其他方法,比如利用属性、事件等等,是具体情况而定


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.875ms