2012-03-15 2 views
0

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

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

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

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

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

ответ

0

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

Per MSDN:

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

Существует также образец MSDN here.

Возможно, вы захотите ознакомиться с недвижимостью 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, если вы хотите высоту основного экрана. Вам решать, какой размер вы хотите сохранить.

+0

Благодарим вас за комментарий. Но как я могу создать это для использования режима заполнения? Так он может заполнить мой экран? –

+0

@denonth: Сделал небольшое редактирование для вас. Надеюсь, это поможет. –

+0

Извините, я не понимаю ваш английский. Возможно, вы можете опубликовать скриншот того, что вы хотите сделать? –

Смежные вопросы