Winforms:在DataGridView外部滑动时取消/阻止滚动事件

时间:2014-02-28 14:35:35

标签: c# winforms events scroll touch

我有一个DataGridView,右侧有一个usercontrol滚动条。在DataGridView内部滑动时,我在DataGridView中获取滚动事件,该事件工作正常(从滑动)。不幸的是,如果我在刷过DataGridControl(在DataGridView之外)后立即滑过自定义滚动条,DataGridView仍会从滑动中获取滚动事件。我想在DataGridView控件之外的滑动(即思维鼠标位置)时阻止DataGridView中的这些滚动事件。相反,应该点击并滚动DataGridView外部的滚动条。我可以单独管理自定义滚动条的滚动。想法赞赏。我没有看到取消滚动事件的简单方法(在事件本身内)。感谢您的期待和任何帮助肯定赞赏。我没有在stackoverflow中看到答案。

对于德米特里的答案(因为太长时间无法发表评论):我试过了,但得到了一个例外的范围异常“索引超出了范围。必须是非负的且小于大小集合。\ r \ nParameter name:index“。在System.Collections.ArrayList.get_Item(Int32索引)    在System.Windows.Forms.DataGridViewRowCollection.SharedRow(Int32 rowIndex)    在System.Windows.Forms.DataGridView.ScrollRowsByHeight(Int32 height)    在System.Windows.Forms.DataGridView.set_VerticalOffset(Int32值)    在System.Windows.Forms.DataGridView.DataGridViewVScrolled(Object sender,ScrollEventArgs se)    在System.Windows.Forms.ScrollBar.OnScroll(ScrollEventArgs se)    在System.Windows.Forms.ScrollBar.DoScroll(ScrollEventType类型)    在System.Windows.Forms.ScrollBar.WmReflectScroll(消息& m)    在System.Windows.Forms.ScrollBar.WndProc(消息& m)    在System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)    在System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)    在System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd,Int32 msg,IntPtr wparam,IntPtr lparam)。想法和感谢?

1 个答案:

答案 0 :(得分:1)

如果我正确理解您的问题,您可以尝试处理DataGridView的MouseLeave事件以隐藏滚动条dataGridView1.ScrollBars = ScrollBars.None;,然后将它们返回到MouseEnter事件处理程序中。