textBox.SelectionStart = textBox.Text.Length;
textBox.ScrollToCaret(); 


또는 그냥....

textBox.Text += "어쩌고"

라고 쓰지말고
textBox.AppendText() 를 쓰자.


이것도 안통한다면

using System.Runtime.InteropServices;

        private const int WM_VSCROLL = 0x115;
        private const int SB_BOTTOM = 7;

        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        private static extern int SendMessage(IntPtr hWnd, int wMsg, IntPtr wParam, IntPtr lParam);


// Scroll to the bottom, but don't move the caret position.
            SendMessage(tbStatus.Handle, WM_VSCROLL, (IntPtr)SB_BOTTOM, IntPtr.Zero);

위 방법은 caret의 위치를 옮기지 않고 스크롤바를 가장 하단으로 내릴수 있다.




제목: [기본 팁] TextBox 자동 스크롤
글쓴이: 김선우
평점: 없음
조회: 1924
아시는 분이 많겠지만, 저같은 초보분들을 위해 ^ ^
TextBox의 자동 스크롤에 대한 간단한 팁을 정리합니다.
http://i-ruru.com/445
 
 
 
 
TextBox의 스크롤을 지정하기 위해 일단 Multiline 모드를 설정하고, Scrollbar가 Vertical로 되어 있다면 더 좋겠죠.


1. 다음과 같이 TextBox에 값을 설정 후

textBox.Text = "very very long text";

스크롤이 생길 정도의 문자열을 넣어도 스크롤은 위에 고정되어 있습니다.

계속 바닥으로 스크롤이 되어있기 원한다면

textBox.Select(textBox.Text.Length, 0);
textBox.ScrollToCaret();

위와 같은 코드를 값을 입력 후 실행해 줍니다.


2. 문자열 값을 추가하고 항상 scroll을 바닥으로 하고 싶다면.

textBox.Text += "some string";

위와 같은 코드는 피해야 합니다.

textBox.AppendText("some string");

대신 AppendText(string) 메소드를 사용하면 값을 입력한 후 스크롤이 바닥으로 이동합니다.
Posted by 휘사마
,