【发布时间】:2013-05-13 19:48:16
【问题描述】:
我想创建一个更好看的 DataGridView 来显示我的 SQL 数据库中的数据。具体来说,我希望复制这样的内容:
是否有某种适用于 Visual Studio 的附加组件可以帮助我使 DataGridView 看起来像这样?还是我错过了一些格式/显示选项?
【问题讨论】:
标签: c# mysql winforms datagridview add-on
我想创建一个更好看的 DataGridView 来显示我的 SQL 数据库中的数据。具体来说,我希望复制这样的内容:
是否有某种适用于 Visual Studio 的附加组件可以帮助我使 DataGridView 看起来像这样?还是我错过了一些格式/显示选项?
【问题讨论】:
标签: c# mysql winforms datagridview add-on
这种事情我已经做过很多次了,其他答案都是正确的,因为你必须通过设置单元格样式来手动完成。有第 3 方选项,但在与它们混了一段时间后,我总是最终放弃它,因为您偶尔会遇到专有控件的限制(而且它们通常要花钱)。但是,如果您能够使用 WPF 而不是 WinForms,我强烈建议您使用它。使用 WPF 的 MVVC 模式进行各种样式设置要容易得多。
【讨论】:
单元格样式可能是您的朋友。 您可以在 MSDN Ref1、Ref2 中找到一些参考资料。同时,可以通过Infragistic 或DevExpress 等第三方控件库轻松实现更高级的开箱即用样式。
【讨论】:
使用“样式”属性 -
DataGridView1.Item(ColumnIndex, RowIndex).Style.BackColor = Color
DataGridView1.Item(ColumnIndex, RowIndex).Style.ForeColor = Color
【讨论】:
你可以试试这个..例如..
dgv.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
dgv.ColumnHeadersDefaultCellStyle.BackColor = Color.Aquamarine
dgv.ColumnHeadersDefaultCellStyle.ForeColor = Color.Red
dgv.ColumnHeadersHeight = 30
dgv.GetType.InvokeMember("DoubleBuffered", Reflection.BindingFlags.NonPublic Or _
Reflection.BindingFlags.Instance Or System.Reflection.BindingFlags.SetProperty, Nothing, dgv, New Object() {True})
dgv.Columns(1).DefaultCellStyle.BackColor = Color.Yellow
在 Form.load 事件中添加这个
dgv.EnableHeadersVisualStyles = False
【讨论】: