2

RichTextbox1 に大量のテキストを追加すると、右側にスクロール バーがありますが、内部のテキストは常にスクロールを追加する行です。マウスで右側のバーを下にドラッグした場合にのみ、テキストスクロールが表示されます。

内部のテキストが richTextbox の下部に到達したら、自動的にスクロールしたいと考えています。

どうすればできますか?

4

2 に答える 2

4

RichTextBox コントロールにテキストが追加されるたびに、これらのステートメントを実行して、RichTextBox 内のテキストの末尾にカーソルを移動する必要があります。RichTextBox コントロールの名前が richTextBox であると仮定すると、次のようなステートメントがあります。

richTextBox.SelectionStart = richTextBox.Text.Length;
richTextBox.ScrollToCaret();
于 2012-05-18T01:55:02.790 に答える
3

このコードは完全に機能します: ------

namespace CustomRTB
{
    public class CustomRTB : RichTextBox
    {
        #region API Stuff
        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        public static extern int GetScrollPos(IntPtr hWnd, int nBar);

        [DllImport("user32.dll")]
        private static extern int SetScrollPos(IntPtr hWnd, int nBar, int nPos, bool bRedraw);

        private const int SB_HORZ = 0x0;
        private const int SB_VERT = 0x1;
        #endregion
        public int HorizontalPosition
        {
            get { return GetScrollPos((IntPtr)this.Handle, SB_HORZ); }
            set { SetScrollPos((IntPtr)this.Handle, SB_HORZ, value, true); }
        }

        public int VerticalPosition
        {
            get { return GetScrollPos((IntPtr)this.Handle, SB_VERT); }
            set { SetScrollPos((IntPtr)this.Handle, SB_VERT, value, true); }
        }
    }
}

含まれているRichTextBoxクラスのプロパティで確認できます

public RichTextBoxScrollBars ScrollBars { get; 設定; }

このプロパティを使用すると、RichTextBox コントロールのユーザーに水平スクロール バーと垂直スクロール バーを提供して、スクロールを有効にすることができます。

于 2012-05-18T03:42:32.307 に答える