即使网格的滚动条属性设置为true,也会丢失垂直滚动条

时间:2017-07-10 08:02:38

标签: winforms

我有一个数据网格,其滚动条属性设置为两者。但是当我在18英寸的屏幕上打开它时,垂直滚动条不会出现。当我调整窗口宽度时会出现。当我在屏幕上加载垂直滚动条时,我怎样才能看到它?

1 个答案:

答案 0 :(得分:1)

您必须创建一个自定义DGV,它会覆盖何时显示或不显示垂直滚动条的自动行为

public class CustomDataGridView : DataGridView
{
    public CustomDataGridView() : base()
    {
        VerticalScrollBar.Visible = true;
        VerticalScrollBar.VisibleChanged += VerticalScrollBar_VisibleChanged;
    }

    private void VerticalScrollBar_VisibleChanged(object sender, EventArgs e)
    {
        if (!VerticalScrollBar.Visible)
        {
            int width = VerticalScrollBar.Width;
            VerticalScrollBar.Location =
                new Point(ClientRectangle.Width - width, 1);
            VerticalScrollBar.Size =
                new Size(width, ClientRectangle.Height - 1 - this.HorizontalScrollBar.Height);
            VerticalScrollBar.Show();
        }
    }
}

这取自此来源:https://social.msdn.microsoft.com/Forums/windows/en-US/516851de-ac00-4442-b846-44734dcbd7f5/always-display-vertical-scrollbar-in-datagridview?forum=winformsdatacontrols