清除c#表单文本框

时间:2016-03-15 13:40:25

标签: c# winforms

我正在以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 = ("");
        }
    }

2 个答案:

答案 0 :(得分:1)

不仅要检查targetWord是否为空,还要检查guessLetter。您最好也使用string.IsNullOrEmpty,因为它还会检查字符串是否为空:

if (!string.IsNullOrEmpty(targetWord) && !string.IsNullOrEmpty(guessLetter))
{
    ...
}

我想你也应该检查一下是否输入了一个字母。这意味着这个额外的检查:

if (guessLetter.Length == 1)
{
    ...
}

答案 1 :(得分:0)

当您编写更改文本框中Text属性的代码时,您将输入此事件。我是说这个。

  textBox3.Text = incorrectGuessCtr.ToString();

在函数参数中添加一些内容或设置一些标志,以便您可以识别是从用户输入调用事件还是清除文本。 只需检查用户按退格键时调用此函数的次数。你会明白的。