如何在C#中多次在文本框中显示文本?

时间:2012-05-04 11:28:34

标签: c# loops textbox while-loop richtextbox

我想在文本框中多次显示内容。例如,如果您使用此代码并将richtextbox替换为messagebox,它将继续显示文本,直到循环结束。我想将文本从textBox1显示到richTextBox1,然后让程序按Enter键,然后在richtextbox中再次键入它。这有点令人困惑抱歉,但如果你有任何问题只是评论他们,我会更清楚。这是我的代码:

private void button1_Click(object sender, EventArgs e)
    {
        Clipboard.SetText(textBox1.Text);

        int text = 0;
        int end = int.Parse(textBox2.Text);
        while (text<=end)
        {
            richTextBox1.Text=(Clipboard.GetText());
            text++;
        }

提前致谢!

2 个答案:

答案 0 :(得分:3)

在您的代码中,您有:

richTextBox1.Text=(Clipboard.GetText());

你的代码不工作的原因是因为在每个循环中,你将文本设置为剪贴板上的任何内容,所以在循环结束时它只会在那里有一次。您需要“追加”或添加到文本的末尾,以便多次使用它:

richTextBox1.Text += richTextBox1.Text + (Clipboard.GetText());

或者:

richTextBox1.Text += (Clipboard.GetText());

这会将剪贴板文本添加到RichTextBox的末尾,因此您将多次使用相同的文本,但所有文本都在同一行。如果要使文本显示在多行上,则必须在附加文本后添加新行:

richTextBox1.Text += (Clipboard.GetText())+"\r\n";

或者:

richTextBox1.Text += (Clipboard.GetText())+Enviroment.NewLine;

希望这有帮助!

答案 1 :(得分:0)

使用Timer而不是使用循环并将其间隔时间保持为2秒。并在按钮上单击启动计时器并将结束声明为类变量,当满足“end”变量的条件时,停止计时器。

private void button1_Click(object sender, EventArgs e)
        {
            end = int.Parse( textBox2.Text);
            timer1.Start();

        }
        private int end = 0;
        private int start = 0;
        private void timer1_Tick(object sender, EventArgs e)
        {
            if (start == end)
            {
                timer1.Stop();
            }
            else
            {
                start++;
                textBox1.Text = start.ToString();
            }
        }