将 GroupBox 内的所有控件设为只读?

Ahm*_*mad 2 .net c# controls groupbox winforms

我知道许多单独的控件都有一个ReadOnly属性。但是假设我有一个GroupBox其中有许多不同的控件(文本框、组合框、单选按钮等..),是否可以ReadOnly一起设置所有这些控件的属性?

并不是说我只想为特定内的控件设置此属性GroupBox(因为我也有多个 GroupBox,所以我不希望为其他 GroupBox 中的控件完成该设置)..

手动设置ReadOnly属性似乎非常昏昏欲睡,因为每个控件都有多达 20 个Groupbox(不要问为什么:p)。

小智 5

对于 Winform 中的标准控件,您可以使用类似的内容(TextBoxBase是ReadOnly属性控件的基类):

    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;
        }
    }
Run Code Online (Sandbox Code Playgroud)