操纵动态控件c#表单应用程序

时间:2013-07-25 17:02:11

标签: c# controls

在应用程序中,有一些在运行时制作的面板。为了访问名为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();
        }

1 个答案:

答案 0 :(得分:0)

您可以声明一个Panel数组,然后遍历该数组以将每个pannel添加到UI中 当您想要访问其中一个时,只需通过阵列访问它。 通过这种方式,您不必“查找”控件,而是通过数组索引直接访问它。