[英]How to set Access a parent form control From it's child form
我正在使用 windows 窗体应用程序,所有我所知道的都尝试过,但无法访问父窗体的子窗体控件。
我到目前为止尝试过的代码:
this.ParentForm.Controls["PanelContainer"].Visible = false;
和
this.MdiParent.Controls["pnlContainer"].Visible = false;
和
Form myform = btnLogin.FindForm();
myform.Parent.Controls["PanelContainer"].Visible = false;
我曾尝试为 Panel Control 设置公共属性:
public Panel PanelContainer
{
set { pnlContainer = value; }
get { return pnlContainer; }
}
但我收到了一个异常,“未将 Onject 引用设置为对象的实例”
EDIT1 :这是我的表格的快照:
EDIT2 :这就是我在 ContainerPanel 中添加表单的方式
var login = new Login();
login.TopLevel = false;
login.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
PanelContainer.Controls.Add(login);
login.Show();
如果我理解正确,我遇到了同样的问题。 我对“ParentForm”一词感到困惑,而这个其他答案确实有助于解释我为什么做错了。
允许顶级窗体与低级窗体共享控件:
1.) 在窗体设计器中,打开主窗体,选择要共享的控件,并将其修饰符设置为“内部”。
2.) 在调用低级表单时,提供“this”作为 Show() 的所有者参数。
LoginForm login = new LoginForm();
login.Show(this);
3.) 从较低级别的表单中,您现在可以引用 Owner 属性并将其转换回其类类型以按名称访问共享控件。
((MainForm)Owner).PanelContainer.Visible = false;
该Controls
对象掀起了Control
是一个集合,是指数接近。
this.ParentForm.Controls[0].Visible. . .
您引用的名称将在以下内容中:
this.ParentForm.Controls[0].Name
确保父窗体中的控件设置为公共。 之后,访问该控件就像
ParentForm frmParentForm= (ParentForm)Application.OpenForms["ParentForm"];
frmParentForm.YourControlName
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.