Как сделать строку для автоматического изменения размера - PullRequest
0 голосов
/ 15 марта 2012

Я хочу, чтобы размер строки автоматически изменялся в зависимости от размера экрана. Когда я делаю это для колонки, это действительно работает:

grid.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;

Но когда я хочу сделать то же самое для ряда. У меня нет варианта заполнения. У меня есть только как

grid.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells;

Как мне сделать так, чтобы мои строки заполняли экран в зависимости от его размера?

1 Ответ

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

Вы можете использовать метод AutoResizeRow.

За MSDN:

Этот метод полезен, если вы хотите контролировать время изменения размера строки. Высота строки корректируется только один раз за вызов метода; если содержимое строки позже изменится, строка не будет автоматически корректироваться. Чтобы изменить размер всех строк, используйте метод AutoResizeRows. Чтобы настроить автоматическое изменение размера строки при изменении ее содержимого, используйте свойство AutoSizeRowsMode.

Здесь также есть образец MSDN здесь .

Возможно, вы захотите просмотреть свойство RowTemplate с именем Height. Вы можете рассчитать, когда изменяется размер экрана

EDIT:

Вы можете поместить это в событие изменения размера, например Form_ResizeEnd. YMMV о том, как сетка может работать с большим количеством строк.

foreach (DataGridViewRow row in dataGridView1.Rows)
{
    row.Height = 22; //your calculation based on the screen height
}

Я полагаю, вы можете использовать System.Windows.Form.Screens класс, в частности Screens.PrimaryScreen.Bounds.Height, если вы хотите высоту основного экрана. Вам решать, какой размер вы хотите сохранить.

...