18. april 2005 - 15:27Der er
6 kommentarer og 1 løsning
richTextBox / Scrollbar skal vise bunden først
Hej Eksperter!
Jeg laver et program som benytter et richTextBox. Når der skrives for meget tekst til at det kan være i boksen kommer en scrollbar automatisk til syne.
Problemet er at textboksen automatisk viser det øverste tekst. Det skal den ikke! Den skal selv "scrolle" ned til den nederste linie, da det er det sidste som brugeren har tastet ind.
det med focus kan være et problem i nogle tilfælde jeg faldt over denne løsning et eller andet sted og bruger den selv uden at tænke for meget på det og den funker fint
kalder bare scrollToBottom dog skal navnet på din ritchtextbox rættes til
const int SB_VERT = 1; const int EM_SETSCROLLPOS = 0x0400 + 222;
[DllImport("user32", CharSet=CharSet.Auto)] public static extern bool GetScrollRange(IntPtr hWnd, int nBar, out int lpMinPos, out int lpMaxPos);
[DllImport("user32", CharSet=CharSet.Auto)] public static extern IntPtr SendMessage(IntPtr hWnd, int msg, int wParam, POINT lParam);
[StructLayout(LayoutKind.Sequential)] public class POINT { public int x; public int y; public POINT() { } public POINT(int x, int y) { this.x = x; this.y = y; } } private void scrollToBottom() { int min, max; GetScrollRange(rtbxChat.Handle, SB_VERT, out min, out max); SendMessage(rtbxChat.Handle, EM_SETSCROLLPOS, 0, new POINT(0, max - rtbxChat.Height)); }
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.