[英]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.