禁用窗口窗体上的几个控件



我正在用windows窗体开发C#项目。我主要使用的几个控件是:组框、按钮、标签、文本框等。

我正在使用一个函数,当我将布尔值传递给该函数时,该函数曾一度禁用所有控件。但这个功能并不是每次都有帮助,因为在大多数情况下我不需要这个,而不是在大多数情况中我只需要禁用一些控件。

有没有办法禁用窗体上除所有控件之外的某些控件?在当前情况下,我只想禁用组框中的所有控件。

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

您可以禁用任何容器,其中的所有控件都将自动禁用。我不确定分组框,但面板控制可以做到这一点。

如果禁用就足够了,您可以禁用组框,子组框也将被禁用。

或你可以通过:

    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;
    }
}

代码来自这里

最新更新