0

テキストボックスに何かを複数回表示したい。たとえば、このコードを使用して 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++;
        }

前もって感謝します!

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

ループを使用する代わりにタイマーを使用し、その間隔を 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 に答える