Вопрос

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

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

Это было полезно?

Решение

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

Например,

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

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

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top