3

このコードを圧縮する方法はありますか?これは、100ミリ秒後にタイマーが作動し、次の文字を投稿します。これのより小さなコードバージョンはありますか?

一度に1文字ずつテキストを入力できるようにしたいだけです。

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";
        }
    }
4

2 に答える 2

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

(注、テストされていません)

于 2013-01-19T23:12:02.970 に答える
2
string all = "Hmm... You right there??";
if (textBox1.Text.Length < all.Length)
    textBox1.Text += all[textBox1.Text.Length];
else
    timer1.Stop();
于 2013-01-19T23:15:35.117 に答える