正在WinForms中动态加载面板中的控件详细信息

本文关键字:控件 详细信息 加载 WinForms 动态 正在 | 更新日期: 2023-09-27 18:20:17

我在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);

通过这种方式,无论何时调用该方法,都会将一个新的子面板添加到主面板中。

我可以点击显示在主面板中的特定面板吗?

我想获得所选面板中存在的控件的值,并将其显示在某个位置。

如果能在这方面提供任何帮助,我将不胜感激。

正在WinForms中动态加载面板中的控件详细信息

为面板命名。。。。

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...
    }
}