其他分享
首页 > 其他分享> > CodeGo.net> Datagridview AutoSizeColumnsMode不起作用

CodeGo.net> Datagridview AutoSizeColumnsMode不起作用

作者:互联网

用户数
因此,由于视力/偏好,我有不同的用户使用不同的分辨率.

形成
出现的一种C#表单具有一个Datagridview,其AutoSizeColumnsMode设置为Fill.通过阅读MSDN中的对象,我意识到使用Fill不能使用左右滚动条.

问题
因此,问题在于何时装载datagridview.这些列在高分辨率下看起来不错,并且将datagridview一直填充到其边界.在较低分辨率的屏幕上,由于未使用“填充”选项启用滚动条,因此某些列被隐藏并且必须由用户拉伸才能查看.

尝试次数
我尝试了DisplayedCells选项,该选项的确为用户提供了较低分辨率的滚动条,并且看起来/效果很好.但是在更高的分辨率下,它在最后一列和Datagridview的边框之间留有很大的空隙,并且看起来未完成/损坏.


我怎么说:“除非用户使用的是非常低的分辨率,否则设置为Fill,然后使用DisplayedCells?”

解决方法:

您可以通过以下方式获得分辨率

        int screenWidth = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width;
        int screenHeight = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height;

然后使用if子句设置AutoSizeColumnsMode-Property.

像这样:

    private void getScreenResolution()
    {
        int screenWidth = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width;
        int screenHeight = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height;
    }

    private void setAutoSizeColumnsMode()
    {
        if (screenWidth <= 1680 || screenHeight  <= 768)
            dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells;
        else
            dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
    }

标签:autosize,datagridview,resolution,c
来源: https://codeday.me/bug/20191030/1968725.html