2016-01-12 1 views
1

В настоящее время я работаю над приложением для управления событиями.Как изменить размер строк в datagridview, чтобы они заполнили весь элемент управления, и все они имеют одинаковую высоту.

До сих пор я использовал DataGridView управление, чтобы отобразить календарь на месяц:

enter image description here

Но строки таблицы не правильно подобранные.

Я хотел бы, чтобы достичь чего-то, как на фото ниже:

enter image description here

Обратите внимание, что высота шести строк одинаковы, и пропорция сохраняется, если сетка изменяется.

Я попытался достичь этого с помощью DataGridView.AutoResizeRows. Это не сработало. Есть ли решение?

+0

Да я имею в виду высоту. – Andrei

+0

@TaW Кажется, вы отправили свой комментарий перед моим ответом, когда я писал код :) Я удалил свой ответ. Не стесняйтесь публиковать свой ответ, у вас есть мой голос :) –

+0

@Reza: Нет, восстановите его; он более совершенен и стоит сам по себе ..! – TaW

ответ

3

Установите ScrollBars свойство DataGridView в None и использовать этот код, чтобы установить размер строк:

foreach (DataGridViewRow row in dataGridView1.Rows) 
{ 
    row.Height = (dataGridView1.ClientRectangle.Height - dataGridView1.ColumnHeadersHeight)/dataGridView1.Rows.Count; 
} 

использовать Также этот код для обработки изменения размера:

private void dataGridView1_SizeChanged(object sender, EventArgs e) 
{ 
    foreach (DataGridViewRow row in dataGridView1.Rows) 
    { 
     row.Height = (dataGridView1.ClientRectangle.Height - dataGridView1.ColumnHeadersHeight)/dataGridView1.Rows.Count; 
    } 
} 
+0

Спасибо! Он работал, но при условии, что AutoSizeRowsMode имеет значение None. – Andrei

+0

Добро пожаловать :) Значение по умолчанию 'AutoSizeRowsMode' равно' None', поэтому я не упомянул об этом. –

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