在应用程序中,有一些在运行时制作的面板。为了访问名为myTestPanel的面板,我使用了controls.find,这使得我必须遍历一个数组。有没有更好的办法?我可以按名称公开声明一些面板,以便我可以像操作表单设计器一样操作名称吗?
这是我在命名空间内的代码。
private void mnuForm_Shown(object sender, EventArgs e)
{
Panel myTestPanel = new Panel();
myTestPanel.Top = 0;
myTestPanel.Left = 0;
myTestPanel.Width = this.Width;
myTestPanel.Height = this.Height;
myTestPanel.Dock = DockStyle.Fill;
myTestPanel.BackColor = System.Drawing.Color.Gold;
myTestPanel.Name = "myTestPanel";
myTestPanel.Click += new EventHandler(myTestPanel_Click);
Controls.Add(myTestPanel);
myTestPanel.Show();
}
private void myTestPanel_Click(object sender, EventArgs e)
{
var myTestPanel = Controls.Find("myTestPanel", true);
foreach (var ReallyStupidWayToDoThis in myTestPanel)
{
Controls.Remove(ReallyStupidWayToDoThis);
ReallyStupidWayToDoThis.Dispose();
}
答案 0 :(得分:0)
您可以声明一个Panel数组,然后遍历该数组以将每个pannel添加到UI中 当您想要访问其中一个时,只需通过阵列访问它。 通过这种方式,您不必“查找”控件,而是通过数组索引直接访问它。