Datagridview AutoSizeColumnsMode not working

本文关键字:working not AutoSizeColumnsMode Datagridview | 更新日期: 2023-09-27 18:27:28

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

表单出现的一个C#表单有一个数据网格视图,其中AutoSizeColumnsMode设置为Fill。通过阅读MSDN中的对象,我意识到使用Fill无法使用左右滚动条。

问题所以问题是当数据网格视图加载时。这些列在高分辨率上看起来很棒,并且可以填充数据网格视图,直到其边界。在分辨率较低的屏幕上,有些列是隐藏的,必须由用户拉伸才能查看,因为滚动条没有使用Fill选项启用。

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

问题我怎么能说"除非用户使用非常低的分辨率,否则设置为填充,然后使用DisplayedCells?"

Datagridview AutoSizeColumnsMode not working

您可以通过获得分辨率

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

然后使用if子句设置AutoSizeColumnsMode属性。

像这样:

    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;
    }