禁用来自其他窗体的控件

本文关键字:窗体 控件 其他 | 更新日期: 2023-09-27 18:25:07

我有一个打开Form2的Form 1。如何打开Form2中的所有文本框?

表格1:

Form2 f2 = new Form2();
f2.ReadOnly();
f2.ShowDialog();

表格2:

public void ReadOnyTextBoxes(Control parent)
{
    foreach (Control c in parent.Controls)
    {
        if (c.GetType() == typeof(TextBox))
        {
            ((TextBox)(c)).ReadOnly = true;
        }
    }
}
public void ReadOnly()
{
     ReadOnyTextBoxes(groupBox1);
}

禁用来自其他窗体的控件

groupbox1中可能有其他groupboxes或一些容器。您需要递归。如何禁用窗体上除按钮外的所有控件?

使用您的想法,为了使其适用于所有TextBox,您可以使用递归函数来实现这一点,比如:

public void MakeReadOnlyTextBoxes(Control parent)
{
    foreach (Control c in parent.Controls)
    {
        if (c.GetType() == typeof(TextBox))
        {
            ((TextBox)(c)).ReadOnly = true;
        }
        else if(c.Controls.Count > 0)
        {
            MakeReadOnlyTextBoxes(c);
        }
    }
}
public void ReadOnly()
{
     ReadOnyTextBoxes(this);
}

已编辑:您应该在递归调用时使用c变量