减少代码行数

时间:2013-01-19 23:07:00

标签: c# winforms textbox

有没有办法压缩这段代码?这样做是在100ms的时间后计时器滴答并且它发布下一个字母。是否有较小的代码版本?

我只想让它一次输出一个字符。

private void timer1_Tick(object sender, EventArgs e)
    {
        if (textBox2.Text == "Hmm... You right there?")
        {
            textBox2.Text = "Hmm... You right there??";
            timer1.Stop();
        }
        if (textBox2.Text == "Hmm... You right there")
        {
            textBox2.Text = "Hmm... You right there?";
        }
        if (textBox2.Text == "Hmm... You right ther")
        {
            textBox2.Text = "Hmm... You right there";
        }
        if (textBox2.Text == "Hmm... You right the")
        {
            textBox2.Text = "Hmm... You right ther";
        }
        if (textBox2.Text == "Hmm... You right th")
        {
            textBox2.Text = "Hmm... You right the";
        }
        if (textBox2.Text == "Hmm... You right t")
        {
            textBox2.Text = "Hmm... You right th";
        }
        if (textBox2.Text == "Hmm... You right ")
        {
            textBox2.Text = "Hmm... You right t";
        }
        if (textBox2.Text == "Hmm... You right")
        {
            textBox2.Text = "Hmm... You right ";
        }
        if (textBox2.Text == "Hmm... You righ")
        {
            textBox2.Text = "Hmm... You right";
        }
        if (textBox2.Text == "Hmm... You rig")
        {
            textBox2.Text = "Hmm... You righ";
        }
        if (textBox2.Text == "Hmm... You ri")
        {
            textBox2.Text = "Hmm... You rig";
        }
        if (textBox2.Text == "Hmm... You r")
        {
            textBox2.Text = "Hmm... You ri";
        }
        if (textBox2.Text == "Hmm... You ")
        {
            textBox2.Text = "Hmm... You r";
        }
        if (textBox2.Text == "Hmm... You")
        {
            textBox2.Text = "Hmm... You ";
        }
        if (textBox2.Text == "Hmm... Yo")
        {
            textBox2.Text = "Hmm... You";
        }
        if (textBox2.Text == "Hmm... Y")
        {
            textBox2.Text = "Hmm... Yo";
        }
        if (textBox2.Text == "Hmm... ")
        {
            textBox2.Text = "Hmm... Y";
        }
        if (textBox2.Text == "Hmm...")
        {
            textBox2.Text = "Hmm... ";
        }
        if (textBox2.Text == "Hmm..")
        {
            textBox2.Text = "Hmm...";
        }
        if (textBox2.Text == "Hmm.")
        {
            textBox2.Text = "Hmm..";
        }
        if (textBox2.Text == "Hmm")
        {
            textBox2.Text = "Hmm.";
        }
        if (textBox2.Text == "Hm")
        {
            textBox2.Text = "Hmm";
        }
        if (textBox2.Text == "H")
        {
            textBox2.Text = "Hm";
        }
        if (textBox2.Text == "")
        {
            textBox2.Text = "H";
        }
    }

2 个答案:

答案 0 :(得分:8)

string fullText = "Hmm... You right there??";
int currentPos = 0;

private void timer1_Tick(object sender, EventArgs e)
{
    currentPos++;
    textBox2.Text = fullText.Substring(0, currentPos);

    if (currentPos == fullText.Length)
        timer1.Stop();
}

(注意,未经测试)

答案 1 :(得分:2)

string all = "Hmm... You right there??";
if (textBox1.Text.Length < all.Length)
    textBox1.Text += all[textBox1.Text.Length];
else
    timer1.Stop();