C#-文本框中的中键滚动内容

我的应用程序中有一个多行文本框,当我单击鼠标中键向上或向下滚动时,它不起作用.

它可以在记事本中使用,但不能在我的文本框中使用.有人知道为什么吗?或者,是否有可能在单击中键时以编程方式开始按所需方向滚动?

解决方法:

要使鼠标滚轮工作正常,请制作一个继承自TextBox的自定义TextBox类.

重写WndProc方法.

查看消息类型.

对于消息类型0x207(WM_MBUTTONDOWN),请调用DefWndProc(ref m);
对于任何其他消息类型,请调用base.WndProc(ref m);.

然后,您的文本框将具有中键滚动.

通常,Windows.Forms会覆盖文本框的内置中间按钮功能,因此控件可以在中间按钮上具有MouseDown事件,但也会禁用固有滚动功能.返回调用默认的窗口处理程序,文本框恢复其滚动功能.

上一篇:Windows窗体文本框应仅接受URL名称


下一篇:javascript-创建一个具有自动扩展宽度的文本框?