Я пытаюсь прокрутить текстовое поле, используя метод WndProc формы. Код, который я создал до сих пор, после поиска в Интернете, выглядит следующим образом:
private void ScrollTextBox()
{
scrollMessage = Message.Create(TabContents.Handle, 0x00B6, new IntPtr(0x0003), new IntPtr(0x0000));
this.WndProc(ref scrollMessage);
}
где TabContents - это текстовое поле.
По какой-то причине ничего не происходит, когда я вызываю этот метод. Я хотел бы знать почему. Я понимаю, что могу добиться того же с помощью метода MoveToCaret, но мне любопытно, почему это не работает.
EDIT:
Как и в опубликованном ответе от Бинера, я написал другой метод, используя SendMessage:
[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wp, IntPtr lp);
private void ScrollTextBox2(int lines)
{
SendMessage(TabContents.Handle, 0x00B6, new IntPtr(0), new IntPtr(lines));
}
Кажется, это работает% 100. Мне все еще интересно, почему this.WndProc (ref message) не работает, учитывая сообщение, созданное с тем же набором параметров.