1

Windows フォームに datagridview を配置しました。画面の幅と高さを測定してから、画面に空のセルを描画します。問題は、幅と高さに応じて画面に配置できるセルの数がわからないことです。必要以上に多くのセルを取得します。それらを描画すると、画面の右側と下部に画面のサイズよりも多くのセルが表示されます。

私が話していることを理解できるように、いくつかのコードを入れます。

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.WidthWindowsのタイトルバーなどは考慮されていません...

したがって、この方法を使用する場合は、これらの要素を考慮する必要があります。または、単に DataGridView のサイズを取得し、そこから計算しますか?

DatagridView1.Heightそして DatagridView1.Width重宝するはずです。

次に、コードを正しいイベントに配置して、ウィンドウのサイズが変更されたときに再調整します:)

編集:のイベントResizedatagridViewあなたのニーズに合うはずです:)

編集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 に答える