【发布时间】:2016-06-23 20:54:50
【问题描述】:
我正在使用 windows 窗体应用程序,所有我知道的都尝试过,但无法访问父窗体的子窗体控件。
到目前为止我尝试过的代码:
this.ParentForm.Controls["PanelContainer"].Visible = false;
和
this.MdiParent.Controls["pnlContainer"].Visible = false;
和
Form myform = btnLogin.FindForm();
myform.Parent.Controls["PanelContainer"].Visible = false;
我已尝试为面板控件设置公共属性:
public Panel PanelContainer
{
set { pnlContainer = value; }
get { return pnlContainer; }
}
但是我得到了一个例外,“Onject Reference not set to an instance of an object”
EDIT1:这是我的表单的快照:
EDIT2:这就是我在 ContainerPanel 中添加表单的方式
var login = new Login();
login.TopLevel = false;
login.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
PanelContainer.Controls.Add(login);
login.Show();
【问题讨论】:
-
这对@adv12 很有帮助,我知道空引用异常是什么,我只想知道如何访问控件。
-
那个登录表单真的是 MDI 子表单吗?看起来像主窗体上的居中对话框窗体。 MDI 子窗体的行为不正确,除非它们具有标准大小的边框,而您的窗体没有。
-
可能不是Mdi表单,我在Load中创建了一个Form对象,在Container Panel中添加了控件。属性值
TopLevel=false和FormBorderStyle为无。 @LarsTech -
你说的是我们看不到的东西。您必须向任何人展示更多代码以帮助您。