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



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

我遇到的问题是禁用按钮,直到玩家代号和高分字段中都有一些文本。这对你们中的很多人来说很容易,但我不确定如何编写代码来实现这一目标,我将展示我所拥有的:

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

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

按钮在程序启动后立即被禁用,直到输入文本。

再往下,我在每个文本框的"文本更改"部分都有代码

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

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

您的代码不起作用,因为您一次只使用一个文本框启用/禁用按钮。

最新更新