Datagridview AutoSizeColumnsMode不起作用

时间:2013-08-12 23:46:22

标签: c# datagridview resolution autosize

用户 所以我有不同的用户,由于视力/喜好,使用不同的分辨率,无论如何。

表格 其中一个C#表单有一个数据网格视图,其中 AutoSizeColumnsMode 设置为填充。我从MSDN中的对象读取中发现,使用 Fill ,您无法使用左右滚动条。

问题 所以问题是datagridview加载的时候。这些列在高分辨率上看起来很棒,并且将datagridview一直填充到它应该的边界。在较低分辨率的屏幕上,某些列是隐藏的,必须由用户拉伸才能查看,因为滚动条未启用填充选项。

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

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

1 个答案:

答案 0 :(得分:4)

您可以通过

获得解决方案
        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;
    }