正在更改其他窗体中的控件属性

本文关键字:控件 属性 窗体 其他 | 更新日期: 2023-09-27 18:26:34

我正在尝试使用此代码来影响其他形式中的所有文本框

//From form2
Principal FrmPrincipal = new Principal();
private void button1_Click(object sender, EventArgs e)
{
    foreach (var control in FrmPrincipal.Controls)
    {
        if (control is TextBox)
        {
            ((TextBox)control).Enabled = true;
            ((TextBox)control).Text = String.Empty;
        }
    }
}

但是它不起作用,我还能做什么呢。谢谢。

@DJ KRAZE在oppening form2之前,这段代码禁用了我的Principal表单的所有文本框,它确实可以

    foreach(var control in this.Controls)
    {
        if (control is TextBox)
        {
            ((TextBox)control).Enabled = false;
        }
    }

正在更改其他窗体中的控件属性

您正在从Principal调用form2,并且您希望通过单击form2按钮来Disable Principal的所有TextBoxes

要执行此操作,必须将Principal引用传递给Constructor中的form2

示例(从Principal表单调用form2):

Form2 form2 = new Form2(this);  //passing "Principal" form reference to "form2"
form2.Show();

您必须在form2:中进行的更改

Principal FrmPrincipal;             //new object
Form2(Principal principalRef)       //"form2" constructor
{
    FrmPrincipal = principalRef;    //assignment of "Principal" form reference to the new object
}

现在,您可以简单地在form2中的任何位置调用FrmPrincipal,并进行您想要的任何更改。