I have a
System.Windows.Forms.DataGridView
带有水平滚动条。当我在这个DataGridView上进行鼠标倾斜时,内容并没有水平滚动。但是在
ListView
当我进行鼠标倾斜操作时,内容将水平滚动。那么我是否需要在DataGridView中设置其他属性以启用鼠标倾斜?还是这是DataGridView的一个错误?
I have a
System.Windows.Forms.DataGridView
带有水平滚动条。当我在这个DataGridView上进行鼠标倾斜时,内容并没有水平滚动。但是在
ListView
当我进行鼠标倾斜操作时,内容将水平滚动。那么我是否需要在DataGridView中设置其他属性以启用鼠标倾斜?还是这是DataGridView的一个错误?
试一下这个
private void dataGridView1_Scroll(object sender, ScrollEventArgs e)
{
//get current selected rows
DataGridViewSelectedRowCollection rc = dataGridView1.SelectedRows;
if (e.ScrollOrientation == ScrollOrientation.VerticalScroll)
{
if (e.NewValue > e.OldValue && rc.Count > 0)
{
int nextrow = rc[0].Index + 1;
dataGridView1.Rows[nextrow].Selected = true;
}
}
}
public sealed class MouseTiltableDataGridView : DataGridView
{
private const int WM_MOUSEHWHEEL = 0x020E;
protected override void WndProc(ref Message m)
{
base.WndProc(ref m);
if (m.Msg == WM_MOUSEHWHEEL)
{
short w = (short)((m.WParam.ToInt32() >> 16) & 0xFFFF);
if (HorizontalScrollingOffset + w >= 0)
{
HorizontalScrollingOffset += w;
}
}
}
}
WM_MOUSEHWHEEL(0x020e)
消息。但是 DataGridView 中的水平滚动并没有发生。 - NidhiSree