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