1

我已将 datagridview 放入我的 Windows 窗体中。我测量屏幕的宽度和高度,然后在屏幕上绘制空单元格。这很好用,问题是我不知道我可以根据宽度和高度在屏幕上放置多少单元格。我得到的细胞比我应该得到的多得多。当我绘制它们时,我在右侧和屏幕底部获得的单元格比屏幕大小更多。

我会放一些代码,这样你就可以看到我在说什么:

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("");
    }
}

我已经把 datagridview 填满了我的父母。所以我得到了比我应该的更多的细胞。知道如何解决这个问题吗?

我认为应该进行一些划分。但我看不出我做错了什么。

谢谢

4

1 回答 1

0

Screen.PrimaryScreen.Bounds.Width不考虑窗口标题栏等...

因此,如果要使用此方法,则必须考虑这些元素。还是简单地获取 DataGridView 的大小,然后从那里计算?

DatagridView1.Height并且 DatagridView1.Width应该派上用场。

然后只需将代码放入正确的事件中,以便在调整窗口大小时重新调整:)

编辑:事件应该适合您的需要Resize:)datagridView

编辑 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 的单元格和不自动调整大小的列

于 2012-03-13T14:36:42.687 回答