Заполнить экран ячейками в сетке данных в зависимости от размера экрана - PullRequest
1 голос
/ 13 марта 2012

Я поместил 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, чтобы заполнить моего родителя.Таким образом, я получаю гораздо больше клеток, чем должен.Любая идея, как это исправить?

Я думаю, что некоторые деления должны сделать эту работу.Но я не вижу, что я сделал неправильно.

Спасибо

1 Ответ

0 голосов
/ 13 марта 2012

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 и столбцы, которые не имеют автоматического размера

...