在 WinForms 中动态获取面板中加载的控件详细信息
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...
}
}
我在 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...
}
}