我正在以C#形式制作一个简单的刽子手风格游戏。我把它设置为textBox1_TextChanged。除非用户每次对其猜测字母进行退格,否则会占用空白区域。如果消息说正确/错误它清除了空间,我怎么能这样做呢。我很恼火,它告诉用户他们在退格后做出了错误的猜测。这是我在这个论坛上的第一篇文章,如果代码文本很奇怪,那就很抱歉。我只是希望程序在猜到后清除textBox中的文本。
更新:添加了建议信息。现在它完成了应该做的一切。除了它弹出窗户说"在目标词中被发现"。如果guessLetter == null ||会发生这种情况guessLetter ==更正|| guessLetter == false。
private void textBox1_TextChanged(object sender, EventArgs e)
{
string guessLetter = textBox1.Text;
//textBox1.ReadOnly = true;
if (targetWord == null)
{
MessageBox.Show("Please start a new game.");
textBox1.Text = ("");
}
else
{
if (targetWord.Contains(guessLetter))
{
MessageBox.Show(guessLetter + " was found in the word");
}
else
{
MessageBox.Show(guessLetter + " was not found in the word");
incorrectGuessCtr++;
textBox3.Text = incorrectGuessCtr.ToString();
}
textBox1.Text = ("");
}
}
答案 0 :(得分:1)
不仅要检查targetWord
是否为空,还要检查guessLetter
。您最好也使用string.IsNullOrEmpty
,因为它还会检查字符串是否为空:
if (!string.IsNullOrEmpty(targetWord) && !string.IsNullOrEmpty(guessLetter))
{
...
}
我想你也应该检查一下是否输入了一个字母。这意味着这个额外的检查:
if (guessLetter.Length == 1)
{
...
}
答案 1 :(得分:0)
当您编写更改文本框中Text属性的代码时,您将输入此事件。我是说这个。
textBox3.Text = incorrectGuessCtr.ToString();
在函数参数中添加一些内容或设置一些标志,以便您可以识别是从用户输入调用事件还是清除文本。 只需检查用户按退格键时调用此函数的次数。你会明白的。