2009-06-23 6 views
8

Как указано в this question, минимальная высота строки для строки в DataGridView (WinForm, а не WPF) равна 17, если вы хотите отображать флажки в DataGridViewCheckBoxCell. Все меньше и флажок просто исчезает!Есть ли способ сделать ячейки DataGridViewCheckBox меньше?

Есть ли способ установить меньший флажок в ячейке DataGridView?

+1

Вам нужно будет перерисовать элемент управления, я думаю, что другого пути нет – V4Vendetta

ответ

3

Если вы используете .NET 4.0, вы можете использовать DataGridView.RowTemplate для настройки минимальной высоты.

Например,

DataGridViewRow row = this.dataGridView1.RowTemplate; 
row.DefaultCellStyle.BackColor = Color.Bisque; 
row.Height = 35; 
row.MinimumHeight = 20; 

Однако, как свидетельствует this MSDN answer минимальная высота для строки с флажками является 17 пикселей. Похоже, что это не так.

4

Действительно, вам нужно будет самостоятельно провести контроль. С плюсом стороны ... нарисовать контроль самостоятельно на самом деле не так сложно. This - достойный пример создания собственного флажка (мы используем что-то довольно похожее в нашем собственном коде).

Просто, вместо того чтобы переопределять его, чтобы выглядеть отключенным, вы хотите переопределить его, чтобы уменьшить размер окна ... Я не вижу способа вызова CheckBoxRenderer.DrawCheckBox с размером, но не должно быть ничего останавливая вас от рисования в вашем собственном графическом объекте, сжимая его самостоятельно, а затем рисуя изображение, которое вы просто уменьшили.

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