-3

我有一个打开 Form2 的 Form 1。如何使 Form2 中的所有 textBox 只读打开?

表格一:

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

2 回答 2

2

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

于 2013-07-27T19:30:17.807 回答
1

使用您的想法,为了使其适用于所有TextBoxes,您可以使用递归函数来执行此操作,例如:

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在递归调用中使用变量

于 2013-07-27T19:29:37.673 回答