Textbox或richtextbox,只有我想要的是當滾動條移動時觸發一個函數。捕捉文本框滾動事件?
我已經找到了GetScrollPos和SetScrollPos。我想週期性檢查滾動條的位置,但必須有更好的方法。那麼,更好的方法是什麼?
更新:使用的WinForms
Textbox或richtextbox,只有我想要的是當滾動條移動時觸發一個函數。捕捉文本框滾動事件?
我已經找到了GetScrollPos和SetScrollPos。我想週期性檢查滾動條的位置,但必須有更好的方法。那麼,更好的方法是什麼?
更新:使用的WinForms
假設的WinForms,你可以嘗試pinvoking:
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...
}
}
}
更妙的是 - 隱藏MouseWheel
事件:https://stackoverflow.com/a/26672097/1037948
public Form1()
{
InitializeComponent();
textBox1.MouseWheel += textBox1_MouseWheel;
}
void textBox1_MouseWheel(object sender, MouseEventArgs e)
{
throw new NotImplementedException();
}
在使用鼠標滾輪的情況下,還有其他的可能性可以在文本框中滾動。考慮從當前框中選擇文本。這也會滾動。或者使用滾動條。 –
@PaulKertscher duh;我必須在這裏發佈,認爲這是與鏈接線程相同的問題。我指出提交時間並聲稱「這是在一個漫長的駝峯日之後!」 – drzaus
您使用的Windows窗體或WPF –
[我如何編寫鼠標在TextBox中滾動時發生的事件?](http://stackoverflow.com/questions/2667175 4/how-can-i-write-an-event-that-happen-when-mouse-scroll-in-textbox) – drzaus