在DataGridView中移动列而不单击两次

时间:2014-06-27 22:26:53

标签: c# datagridview datagridviewcolumn

通常,要移动DataGridView中的列,只需点击并拖动即可。但是,如果在此操作之前立即滚动(这在移动列时非常常见),则必须在单击并拖动之前单击该列。我认为这与DataGridView失去焦点有关,所以我从水平滚动条中听取Scroll类型的EndScroll事件,并在{{Focus()上调用DataGridView 1}}那里。那没用。在这种情况下,有人知道如何在没有额外点击的情况下移动列吗?

1 个答案:

答案 0 :(得分:0)

这看起来像WinForms错误。

反编译System.Windows.Forms帮助我找到解决方案:声明一个DataGridView子类并以这种方式覆盖OnScroll函数:

protected override void OnScroll(ScrollEventArgs e)
{
    base.OnScroll(e);
    base.OnMouseUp(new MouseEventArgs(MouseButtons.Left, 1, 0, 0, 0));
}