在窗体上禁用几个控件

时间:2015-03-29 07:43:05

标签: c# c#-4.0

我正在使用Windows窗体进行C#项目。我主要使用的控件很少:组合框,按钮,标签,文本框等。

我正在使用一个用于禁用所有控件的函数,因为我将布尔值传递给此函数。但是这个函数每次都没有用,因为在大多数情况下我不需要这个,而不是在大多数情况下我只禁用几个控件。

有没有办法在窗体上禁用一些控件,除了所有控件? 在当前情况下,我想仅禁用组框内的所有控件。

我谷歌搜索解决方案。有不同的解决方案,有人可以使用一些循环禁用所有控件,例如foreach循环。

2 个答案:

答案 0 :(得分:1)

您可以禁用任何容器,其中的所有控件都将自动禁用。我不确定组框,但Panel控件就是这样。

答案 1 :(得分:0)

如果禁用已足够,您可以禁用组框,也可以禁用子项。

OR 你可以通过以下方式做到:

    private void button1_Click(object sender, EventArgs e)
{
    SetReadonlyControls(groupBox1.Controls);
}

private void SetReadonlyControls(Control.ControlCollection controlCollection)
{
    if (controlCollection == null)
    {
        return;
    }

    foreach (TextBoxBase c in controlCollection.OfType<TextBoxBase>())
    {
        c.ReadOnly = true;
    }
}

The Code is from here