C# Windows 表单 - 需要初学者指导 - 仅当两个文本框都输入了字符时才启用按钮

C# Windows Forms - Beginner Guidance Required - Enabling button only when two text boxes have characters entered

我正在 Visual Studio - Windows Forms c#.net 框架中设计一个程序来记录玩家代号和游戏比赛的高分。我有一个供用户输入玩家代号的文本框和一个供用户输入高分的文本框,然后是一个用于将玩家代号和高分记录到单独的两个列表中的按钮。

我遇到的问题是在 Gamertag 和 High Score 字段中都有一些文本之前禁用按钮。这对你们很多人来说太容易了,但我不确定如何编写代码来实现这一点,我将展示我所拥有的:

所以在初始化组件上我有以下内容:

{
    btnAdd.Enabled = !string.IsNullOrEmpty(txtHighScore.Text);
    btnAdd.Enabled = !string.IsNullOrEmpty(txtUsername.Text);
}

程序一启动按钮就被禁用,直到输入文本。

然后再往下,我在每个文本框的 TextChanged 部分都有代码

private void txtHighScore_TextChanged(object sender, EventArgs e)
{
    btnAdd.Enabled = !string.IsNullOrEmpty(txtHighScore.Text);
}

private void txtGamertag_TextChanged(object sender, EventArgs e)
{
      btnAdd.Enabled = !string.IsNullOrEmpty(txtGamertag.Text);           
}

通过阅读本文,您将看到如果在任一框中输入文本,该按钮将被启用,但我只希望在文本已成功输入到两个字段中时启用它。

您可以将两个文本框 TextChanged 事件设置为这个名为 DataChanged 的方法(您可以选择您喜欢的名称)

private void DataChanged(object sender, EventArgs e)
{
    btnAdd.Enabled = !string.IsNullOrWhiteSpace(txtHighScore.Text)
        && !string.IsNullOrWhiteSpace(txtGamertag.Text);
}

如您所见,您必须同时使用这两个检查来启用按钮,为此您可以利用 &&,这意味着 .
当然,您可以使用相同的命令来编写两个事件,但是对两个事件只使用一种方法可以清楚地说明您在做什么,并且代码中只有一点可以在必要时进行更改,因此代码更易于维护。

您的代码无法正常工作,因为您 enable/disable 按钮一次只使用了一个文本框。