【问题标题】:Enable button C#启用按钮 C#
【发布时间】:2015-10-13 19:52:15
【问题描述】:

我有一个用户控件在我的主窗体上调用一个方法,这个方法应该在同一个窗体上启用一个按钮(默认情况下这个按钮是禁用的),但是它不起作用。

private void button1_Click(object sender, EventArgs e)
    {
        Form1 fr = new Form1();
        fr.login(textBox1.Text, textBox2.Text);
    }

这是我的方法

 public void login(string username, string password)
    {
        Connect();
        sendMessage("LoginAction,Username=" + username + "UserPassword=" + password);
    }

这里是启用按钮的地方

private void commandInterpreter(string Message)
    {
        if(Message.Contains("LoginSuccess,") == true)
        {
            name = Message.Remove(Message.IndexOf("LoginSuccess,Name="), 18);
            Bt2En = true;
        }
    }

这里是我公开按钮属性的地方:

public bool Bt2En
    {
        get { return button2.Enabled; }
        set { button2.Enabled = value; }
    }

【问题讨论】:

  • 您似乎正在创建 Form1 的新实例并启用该实例上的按钮。如果您预计原始实例上的按钮会受到影响,则需要在正确的实例上调用它。
  • 我之前试过了,可惜没用。
  • 您是否尝试调试此代码?放置断点并检查代码是否遵循预期的路径。
  • 所以,这段代码是 Form1 类的一部分。现在,如果您查看第一条评论,我认为您有解决方案。此代码在 form1 的不同实例上执行,而不是在您期望的实例上执行。尝试在调用 fr.login 之前调用 fr.Show(),我敢打赌你会在 Form1 的错误实例上看到禁用按钮
  • 如果 button1_click 的代码是从 Form1 的第一个实例中执行的,那么您可以尝试使用 this.login(textbox1.Text, textbox2.Text);

标签: c# button parent


【解决方案1】:

我这样做解决了我的问题,这些是我在 Form1 中的方法:

public void login()
    {
        Connect();
        Login lg = this.lg;
        string username = lg.Username;
        string password = lg.Password;
        MessageBox.Show(username + "\n" + password);
    }
private void button1_Click(object sender, EventArgs e)
    {
        login();
    }

这个来自我的用户控制:

public string Username
    {
        get { return textBox1.Text; }
    }
    public string Password
    {
        get { return textBox2.Text; }
    }

感谢 Steve 和 Bradley Uffner 的帮助以及所有尝试过的人。我正在发布谁有同样问题的答案。

【讨论】:

    【解决方案2】:

    Bt2En 是一个属性,但你使用诸如方法。

    public void bt2En(bool flag)
    {
    if(flag)
    button.Enable=true;
    }
    

    【讨论】:

    • 那么,我该怎么用呢?
    • 它是如何被用作方法的?
    • 如果是这样,那将是编译器错误。
    • 对不起,这行不通,就像我在登录方法中使用 button.Enable = true 一样,不幸的是它不是那么简单。
    猜你喜欢
    • 2020-05-03
    • 1970-01-01
    • 2018-12-13
    • 1970-01-01
    • 1970-01-01
    • 2013-07-16
    • 1970-01-01
    • 2019-07-17
    • 1970-01-01
    相关资源
    最近更新 更多