怎么样在父窗体中判断子窗体能否打开

.Net技术 码拜 8年前 (2016-06-01) 1020次浏览
在一个C/S应用的户籍管理系统中,本人需要在一个父窗体的一个按钮中判断一个子窗体能否打开,假如打开则将父窗体中一个文本框的数据显示到子窗体的一个文本框中。哪位能帮忙实现一下。最好有代码。
主窗体打开子窗体的代码如下:
private void button30_Click(object sender, EventArgs e)
{
frmElecticity myElecticity = new frmElecticity();
myElecticity.Owner = this;
myElecticity.Show();
}
解决方案

20

子窗体中定义

public static bool flag{get; private set;}

子窗体初始化时与关闭子窗体时分别赋值,在父窗体中判断。

10

就像上面说的一样,增加一个标志变量,在子窗体显示和关闭的时候改变标志变量的状态,父窗体根据这个变量的值来判断子窗体能否打开。
对于传值,你可以在实例化子窗体的时候,通过其构造函数传递,也可以在子窗体写属性,在你贴的那个函数里对子窗体的这些属性赋值,也可以在子窗体写一个初始化数据的函数,在子窗体实例化后调用,并将父窗体的值传递过去

10

https://msdn.microsoft.com/zh-cn/library/system.windows.forms.form.ownedforms.aspx
Form.OwnedForms 属性
获取 Form 对象的数组,这些对象表示此窗体拥有的全部窗体。

private void AddMyOwnedForm()
{
   // Create form to be owned.
   Form ownedForm = new Form();
   // Set the text of the owned form.
   ownedForm.Text = "Owned Form " + this.OwnedForms.Length;
   // Add the form to the array of owned forms.
   this.AddOwnedForm(ownedForm);
   // Show the owned form.
   ownedForm.Show();
}
private void ChangeOwnedFormText()
{
   // Loop through all owned forms and change their text.
  //循环父窗体拥有的子窗口,识别出子窗体即可。
   for (int x = 0; x < this.OwnedForms.Length; x++)
   {
      this.OwnedForms[x].Text = "My Owned Form " + x.ToString();
   }
}

5

本人的程序窗口好办,你窗口有标题吧,用findwindows函数,指定标题的该函数返回句柄大于0,就是存在的

5

可以在父窗体中设个标志,子窗体打开时和关闭时设置这个标志。关于在form间传值,可以设置事件进行传值

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明怎么样在父窗体中判断子窗体能否打开
喜欢 (0)
[1034331897@qq.com]
分享 (0)