5

テキストボックスのテキストを自動的にスクロールするために、次のことを試しました。

私が使用している手順は非常に簡単です。

  1. テキストボックスをフォームにドラッグします。
  2. テキストボックスを複数行に変更します。
  3. 縦スクロール追加。
  4. テキスト ボックスにテキストを追加するには、AppendText() を使用します。

ここに記載されている解決策を試しても、テキストは自動的にスクロールしません。

複数行のテキスト ボックスの一番下まで自動的にスクロールするにはどうすればよいですか?

何が原因で、どうすれば修正できますか?

更新: ボタンを作成し、それを使用して AppendText() を呼び出すと、目的の動作が得られます。ただし、フォームのコンストラクターまたは Load() イベントから AppendText を呼び出そうとすると、追加されたテキストは取得されますが、TextBox はスクロールしません。過去にこの問題を投稿した人を見たことがないので、これは重複した質問ではありません。

4

2 に答える 2

10

コンストラクターとロード イベントの間はフォームの準備が整っていないため、タスクを使用して、準備ができた後にフォームをスクロールする必要がありました。

呼び出されるメソッドは次のとおりです。

void scroll()
{
    this.Invoke(new MethodInvoker(delegate()
        {
            textBox1.SelectionStart = textBox1.Text.Length;
            textBox1.ScrollToCaret();
        }));
}

load イベントに配置されたこのタスクを介して呼び出されます。

Task task1 = new Task(new Action(scroll));
            task1.Start();
于 2013-08-15T21:44:27.160 に答える