簡體   English   中英

在WinForms中動態加載Panel中的控件詳細信息

[英]Getting Control details loaded in Panel dynamically in WinForms

我在WinForms中有一個面板,它在方法調用期間在運行時加載面板。

我的代碼看起來像:

//Adding a child panel
Panel p = new Panel();

//Adding controls to panel
Label lbl5 = new Label();
lbl5.Location = new Point(105, 3);
lbl5.Text = note.noteName;
Label lbl6 = new Label();
lbl6.Location = new Point(105, 43);
lbl6.Text = note.noteName;

p.Controls.Add(lbl5);
p.Controls.Add(lbl6);

//Adding child panel to main panel
Panel1.Controls.Add(p);

這樣,無論何時調用該方法,都會將新的子面板添加到主面板中。

我可以單擊主面板中顯示的特定面板嗎?

我想獲得所選面板中存在的控件的值並將其顯示在某處。

我將不勝感激任何幫助。

為你的面板命名....

var pPanel = new Panel();
pPanel.Name = "pPanel";

// or write it this way....using object initializer
var pPanel = new Panel
{
   Name = "pPanel"
};

然后循環瀏覽您正在尋找的控件的主控面板中的控件...

 foreach(Control ctrl in mainPanel)
 {
    if (ctrl.Name.Contains("pPanel")) .... then do something etc...; 
 }

您也可以用同樣的方式在面板中搜索其他控件...

訂閱這樣的活動:

Panel p = new Panel();
p.Click += panel_click;

然后創建事件:

private void panel_click(object sender, EventArgs e)
{
    Panel childPanel = sender as Panel;
    foreach(Control c in childPanel.Controls)
    {
        //Do something with you values...
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM