【问题标题】:DataGridView inside a panel jumps to beginning of list after panel gets scrolled面板滚动后,面板内的 DataGridView 跳转到列表的开头
【发布时间】:2015-05-21 07:18:27
【问题描述】:

我在面板中有一个 DataGridView。滚动在 DataGridView 上被禁用,而是在面板上完成。通过这样做,我实现了基于像素的 DataGridView 滚动。我滚动如下:

dgvPanel.AutoScrollPosition = value;

但是,问题是在更改滚动条位置后,如果我单击 DataGridView - 它会跳回列表的开头。什么可能导致这种情况?

【问题讨论】:

    标签: c# winforms scroll datagridview panel


    【解决方案1】:

    用这个替换你正在使用的面板,它会覆盖默认面板用来确保控件可见的 ScrollToControl 函数:

    public class PanelEx : Panel {
      protected override Point ScrollToControl(Control activeControl) {
        //return base.ScrollToControl(activeControl);
        return this.AutoScrollPosition;
      }
    }
    

    【讨论】:

    • 对,默认情况下,当子控件聚焦时,面板确保其顶部可见。巧妙的解决方案。
    猜你喜欢
    • 2013-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多