根据屏幕大小在数据网格中使用单元格填充屏幕
本文关键字:屏幕 单元格 填充 网格 数据 数据网 | 更新日期: 2023-09-27 18:27:34
我已经在我的窗口窗体中放置了一个数据网格视图。我测量屏幕的宽度和高度,然后在屏幕上绘制空单元格。这工作正常,问题是我不知道根据宽度和高度可以在屏幕上放置多少单元格。我得到的细胞比我应该的要多得多。当我绘制它们时,我得到的单元格比屏幕右侧和底部的屏幕大小还要多。
我将放置一些代码,以便您可以看到我在说什么:
public static int height= Screen.PrimaryScreen.Bounds.Height;
public static int width= Screen.PrimaryScreen.Bounds.Width;
public void draw()
{
number_of_cells_width = width/ 5; //I have put number 5 because I think they are 5x5 by default size
number_of_cells_height = height / 5;
for (int i = 0; i < number_of_cells_width ; i++)
{
grid.Columns.Add("", "");
}
for (int i = 0; i < number_of_cells_height ; i++)
{
grid.Rows.Add("");
}
}
我已经把数据网格视图填满了我的父母。所以我得到的细胞比我应该的要多得多。知道如何解决这个问题吗?
我认为一些划分应该可以完成这项工作。但我看不出我做错了什么。
谢谢
Screen.PrimaryScreen.Bounds.Width
不考虑窗口标题栏等...
因此,如果要使用此方法,则必须考虑这些元素。或者只是获取 DataGridView 的大小,然后从那里计算?
DatagridView1.Height
和DatagridView1.Width
应该派上用场。
然后只需将代码放在正确的事件中,以便在窗口调整大小时重新调整:)
编辑:datagridView
的活动Resize
应符合您的需求:)
编辑 2 :
foreach (DataGridViewColumn col in DataGridView1.Columns)
{
col.AutoSizeMode = DataGridViewAutoSizeColumnMode.None;
col.Width = 5;
}
foreach (DataGridViewRow row in DataGridView1.Rows)
{
row.Height = 5;
}
以下代码片段应分析所有列和行,并将其大小设置为 5。因此,您将拥有单元格5 * 5和不自动调整大小的列