我有一些TabControl中的多行文本框。该tabcontrol有一个滚动条,但只要多行文本框焦点滚动将滚动文本框而不是tabcontrol。有没有办法阻止文本框采取事件,更像一个普通的文本框,但仍然是多行?防止多行文本框“偷”滚动事件
2
A
回答
1
将TextBox.ScrollBars属性设置为Vertical。这会给文本框一个滚动条来滚动文本。确保TextBox符合TabPage,这样您不会在标签页中看到滚动条。例如,您可以将TextBox.Dock属性设置为Fill。
那不是我想的,也许你是在谈论鼠标滚轮。为您的项目添加一个新类并粘贴下面显示的代码。编译。将新控件从工具箱的顶部放到表单上,替换现有的文本框。
using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;
class MyTextBox : TextBox {
protected override void WndProc(ref Message m) {
// Send WM_MOUSEWHEEL messages to the parent
if (m.Msg == 0x20a) SendMessage(this.Parent.Handle, m.Msg, m.WParam, m.LParam);
else base.WndProc(ref m);
}
[DllImport("user32.dll")]
private static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wp, IntPtr lp);
}
0
(编辑:这里假设WPF:另一种方法将与WinForms的工作)
你可以在文本框中添加一个PreviewMouseWheel
处理程序,然后设置e.Handled = true;
- 理论上是这样!
http://msdn.microsoft.com/en-us/library/system.windows.uielement.previewmousewheel.aspx
希望帮助!
相关问题
- 1. 如何防止添加文本时滚动多行文本框?
- 2. 防止在文本框中滚动
- 3. 添加文本时防止滚动文本框
- 4. 当单击文本框时防止表单向上滚动
- 5. C#:如何防止在Enter上滚动文本框的内容?
- 6. 滚动型是偷
- 7. 防止多行文本框中出现新行
- 8. 防止回收站停止滚动触摸事件
- 9. 多行文本框的点击事件
- 10. WP7防止列表框滚动
- 11. CSS防止滚动
- 12. 防止iframe滚动
- 13. Fullpage.js - 防止滚动
- 14. 防止UITableView滚动?
- 15. 如何使多行文本框传递MouseWheel事件,以便容器可滚动
- 16. 垂直文本Changed事件期间滚动文本框的Scintilla
- 17. 防止进入文本框
- 18. 在丢失焦点时防止文本框离开事件
- 19. 有条件防止文本框更改
- 20. touchstart事件停止滚动
- 21. 防止网页上的多重滚动
- 22. 防止事件
- 23. 防止多线ASP:从修行文本框提要
- 24. 防止contenteditable自动滚动
- 25. 防止前n行被滚动
- 26. 防止页面响应页面滚动的pageup/pagedown事件
- 27. Flex - 防止在TextArea中使用滚动复制事件
- 28. CoordinatorLayout:如何防止滚动事件到达RecyclerView?
- 29. 如何防止浏览器响应滚动事件
- 30. 防止Recyclerview拦截滚动/触摸事件
也许我还不够清楚。 tabcontrol有一个滚动条,它应该是这样的。该文本框没有一个,它是否有一个并不重要。当(多行)文本框被聚焦时,任何鼠标滚动都将影响该文本框中的滚动而不是tab控件。即使文本框是关注的,我也希望滚动发生在tabcontrol中。基本上绑定文本框滚动事件来滚动tabcontrol,但我找不到任何类似于文本框中的滚动事件。 – Daniel 2010-06-26 16:25:22
嗯,不开玩笑。可以肯定的是:你在谈论鼠标滚轮? – 2010-06-26 16:52:04
对不好的问题定义。是的,我正在谈论鼠标滚轮。此外,我正在谈论WinForms(WPF,ASP和类似的存在下滑时发布))。 谢谢,它的工作!获得VS 2008将其加载到工具箱中的工作并不尽如人意,因此我以编程方式添加了它。 – Daniel 2010-06-26 18:10:05