使用表单元素与 UserControls 交互

Using form elements to interact with UserControls

我在用户控件上有一个按钮,默认情况下未启用。当窗体上发生事件时,我希望它能够启用按钮。我在主窗体上设置了一个按钮来测试它,它似乎将 UC 按钮设置为启用,但它在应用程序中并未显示启用。

public partial class Form1 : Form
{

    public Login ucLogin = new Login();

    private void button1_Click(object sender, EventArgs e)
    {
        if (ucLogin.loginEnabled)
        {
            MessageBox.Show("True");
        }
        else
        {
            MessageBox.Show("False");
            ucLogin.loginEnabled = true;
        }


    }
}

Form.cs

在登录表单的用户控件中:

public partial class Login : UserControl
{
    public bool loginEnabled
    {
        get { return ucBtn.Enabled; }
        set { ucBtn.Enabled = value; }
    }
}

奇怪的是,如果我点击表单按钮1,它会说"False",如果我再次点击它,它会说"True",说明它确实 更改 UC 按钮的值,但在应用程序上,它保持禁用状态。

您在表单上看到的 Login 用户控件可能不是您设置 loginEnabled 属性 的实例。