12

テキストボックスまたはリッチテキストボックス、私が欲しいのは、スクロールバーが移動したときに関数をトリガーすることだけです。

GetScrollPos と SetScrollPos は既に見つかりました。スクロールバーの位置を定期的にチェックすることを考えましたが、もっと良い方法があるはずです。それで、より良い方法は何ですか?

更新: WinForms の使用

4

3 に答える 3

9

WinFormsを想定して、ピンボーキングを試すことができます。

public class MyRTF: RichTextBox {

  private const int WM_HSCROLL = 0x114;
  private const int WM_VSCROLL = 0x115;
  private const int WM_MOUSEWHEEL = 0x20A;

  protected override void WndProc(ref Message m) {
    base.WndProc(ref m);

    if (m.Msg == WM_VSCROLL || m.Msg == WM_HSCROLL || m.Msg == WM_MOUSEWHEEL) {
      // scrolling...
    }
  }

}
于 2013-01-04T18:56:37.613 に答える
1

さらに良い - 非表示のMouseWheelイベント: https://stackoverflow.com/a/26672097/1037948

public Form1()
{
    InitializeComponent();
    textBox1.MouseWheel += textBox1_MouseWheel;
}

void textBox1_MouseWheel(object sender, MouseEventArgs e)
{
    throw new NotImplementedException();
}
于 2015-08-12T18:18:59.883 に答える