Datagridview AutoSizeColumnsMode not working
本文关键字:working not AutoSizeColumnsMode Datagridview | 更新日期: 2023-09-27 18:27:28
用户因此,我有不同的用户,由于视力/偏好,他们使用不同的分辨率。
表单出现的一个C#表单有一个数据网格视图,其中AutoSizeColumnsMode设置为Fill。通过阅读MSDN中的对象,我意识到使用Fill无法使用左右滚动条。
问题所以问题是当数据网格视图加载时。这些列在高分辨率上看起来很棒,并且可以填充数据网格视图,直到其边界。在分辨率较低的屏幕上,有些列是隐藏的,必须由用户拉伸才能查看,因为滚动条没有使用Fill选项启用。
尝试次数我尝试了DisplayedCells选项,该选项确实为用户提供了较低分辨率的滚动条,而且看起来/效果很好。但在更高的分辨率上,它在最后一列和Datagridview的边界之间留下了很大的间隙,看起来未完成/已损坏。
问题我怎么能说"除非用户使用非常低的分辨率,否则设置为填充,然后使用DisplayedCells?"
您可以通过获得分辨率
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;
}