0

我想在文本框中多次显示某些内容。例如,如果您使用此代码并将richtextbox 替换为messagebox,它将继续显示文本,直到循环结束。我想将textBox1中的文本显示到richTextBox1中,然后让程序按回车键,然后在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++;
        }

提前致谢!

4

2 回答 2

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;

希望这可以帮助!

于 2012-05-04T11:44:07.153 回答
0

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

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();
            }
        }
于 2012-05-04T11:34:05.637 回答