禁用放置在面板上的特定控件

时间:2014-04-17 05:43:37

标签: c# winforms user-controls panel

我是Windows Forms Applocation的新手。我正在使用Visual Studio 2010与.NET framework 4.0。 在我的项目中,我使用Panel来放置控件,如TextBox,DatePicker,CheckBox,ComboBox和Button。我在这个面板可见时只想禁用特定控件。我怎么做到这一点?我在谷歌搜索了很多,但它没有给我一些相关的结果。

3 个答案:

答案 0 :(得分:3)

你可以这样做:

 foreach (Control ctl in panel.Controls)
 {
    if (ctl.Name == "textBox1")
    {
           ctl.Enabled = false;
    }
 }

您也可以在foreach循环中对控件类型应用 switch case ,以了解该控件是TextBox,DatePicker等。

答案 1 :(得分:1)

bool canEdit = false

private void panel1_VisibleChanged(object sender, EventArgs e)
        {
            button1.Enabled = false
            checkbox1.Enabled = false
            //...
        }

你可以定义一个bool变量来检查要做什么。如下所示:

        bool canEdit = false;

        private void panel1_VisibleChanged(object sender, EventArgs e)
        {
            if (!canEdit)
            {
                button1.Enabled = false;
                //and other components that u want
            }
            else
            {
                button1.Enabled = true;
                //and other components that u want
            }
        }

答案 2 :(得分:0)

让我们以按钮为例进行控制。

void button1_Click(object s ,Eventargs e)
{
  button1.Enabled= false;
  panel.visible= true;    
}