2012-01-02 2 views
4

Попытка установить RowHeight как это (в коде):DataGridView высота настройка строки не работает

dgvTruckAvail.RowTemplate.Height = 48; 

работы Doesnt». Я также пытался установить высоту каждого добавляемого коллажа - не работает.

Вот свойство сетки:

this.dgvTruckAvail.AllowUserToAddRows = false; 
this.dgvTruckAvail.AllowUserToDeleteRows = false; 
this.dgvTruckAvail.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
    | System.Windows.Forms.AnchorStyles.Left) 
    | System.Windows.Forms.AnchorStyles.Right))); 
this.dgvTruckAvail.BackgroundColor = System.Drawing.Color.White; 
this.dgvTruckAvail.BorderStyle = System.Windows.Forms.BorderStyle.None; 
this.dgvTruckAvail.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.None; 
this.dgvTruckAvail.Columns.AddRange(
    new System.Windows.Forms.DataGridViewColumn[] 
    { 
     this.colMon, 
     this.colTue, 
     this.colWED, 
     this.colThu, 
     this.colFri, 
     this.colSat, 
     this.colSun}); 
this.dgvTruckAvail.Cursor = System.Windows.Forms.Cursors.Default; 
dataGridViewCellStyle8.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; 
dataGridViewCellStyle8.BackColor = System.Drawing.SystemColors.Window; 
dataGridViewCellStyle8.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 
dataGridViewCellStyle8.ForeColor = System.Drawing.SystemColors.ControlText; 
dataGridViewCellStyle8.SelectionBackColor = System.Drawing.SystemColors.Window; 
dataGridViewCellStyle8.SelectionForeColor = System.Drawing.SystemColors.ControlText; 
dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.False; 
this.dgvTruckAvail.DefaultCellStyle = dataGridViewCellStyle8; 
this.dgvTruckAvail.EnableHeadersVisualStyles = false; 
this.dgvTruckAvail.Location = new System.Drawing.Point(0, 22); 
this.dgvTruckAvail.Margin = new System.Windows.Forms.Padding(4); 
this.dgvTruckAvail.Name = "dgvTruckAvail"; 
this.dgvTruckAvail.ReadOnly = true; 
this.dgvTruckAvail.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.None; 
this.dgvTruckAvail.RowTemplate.Height = 48; 
this.dgvTruckAvail.RowTemplate.Resizable = System.Windows.Forms.DataGridViewTriState.True; 
this.dgvTruckAvail.ShowCellToolTips = false; 
this.dgvTruckAvail.Size = new System.Drawing.Size(1098, 394); 
this.dgvTruckAvail.TabIndex = 0; 

Я не дребезжание сетки для заполнения. Строки добавляются вручную, а ячейки заполняются вручную. Есть ли у вас какие-либо предложения о том, что еще я могу попытаться установить? Может быть, переопределить Grid как-то?

ответ

8

Установка Height Недвижимость каждого Строка делает работа.

foreach (DataGridViewRow row in dataGridView1.Rows) 
{ 
    row.Height = 80; 
} 
+1

Вы правы. См. Мой другой вопрос (я нашел, почему это не сработало для меня) http://stackoverflow.com/questions/8705640/datagridview-setting-row-height-in-code-and-disable-manual-resize – katit

+1

Вы должны установите row.Height после того, как свойство DataGridView.Visible установлено в значение «true». Напишите обработчик событий для события «DataGridView.VisibleChanged», поэтому, когда «Видимый == истинный», установите «Высота» каждой строки. – gmlobdell

+1

Это более эффективно: dg.RowTemplate.Height = 30; –

14

Две идеи:

1) Установить RowTemplate.Height перед тем вы привязать DGV

2) Комплект AutoSizeRowsMode = нет

Один или оба из них могут помочь.

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