Есть ли способ сделать ячейки DataGridView CheckBox меньше?
-
06-07-2019 - |
Вопрос
Как описано в этом вопросе , минимальная высота строки для строки в 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 с размером, но ничего не должно останавливать Вы рисуете в свой собственный графический объект, уменьшаете его сами, затем рисуете изображение, которое вы только что сократили.