【问题标题】:DataGridView special coloring - which way is better styles or cellformatting event?DataGridView 特殊着色 - 哪种方式更好的样式或单元格格式化事件?
【发布时间】:2011-05-26 14:22:48
【问题描述】:

我想知道哪种方法可以更好地为 datagridview 单元格着色?

您可以在设计时使用网格上设置的样式。出于某种原因,我不经常使用这些。

您可以处理网格中每个单元格的单元格格式化事件并进行比较。

我不知道样式如何检查和应用样式,但如果它比每个单元格的单元格格式化事件调用更少,它似乎会更好。我不确定,所以我想我会在这里问。

【问题讨论】:

    标签: winforms datagridview


    【解决方案1】:

    CellFormatting 事件确实是一个昂贵的选项,因为每次绘制每个可见单元格时都会调用它:如果您在代码中进行设置,我发现设置样式更容易:

         DataGridViewCellStyle cellStyle = new DataGridViewCellStyle
            {
                Alignment = DataGridViewContentAlignment.MiddleLeft,
                BackColor = Color.White,
                ForeColor = Color.Black,
                SelectionBackColor = Color.FromArgb(224, 224, 224),
                SelectionForeColor = Color.Black,
                WrapMode = DataGridViewTriState.False,
                NullValue = string.Empty
            };
    
          myDGV.DefaultCellStyle = cellStyle;
          myDGV.ColumnHeadersDefaultCellStyle = cellStyle;
    

    【讨论】:

    • 我使用单元格格式化事件的原因之一是因为我查看单元格中的值并根据该值设置三种不同背景色之一。我怎样才能用一种风格完成类似的事情?我在看课程,不知道如何才能做到这一点?
    • 你是对的,对于那个特定的场景,你需要使用 CellFormatting。您可以使用适当的 BackColor 缓存样式并将它们应用到事件中,这可能有助于提高性能。
    猜你喜欢
    • 2012-08-04
    • 2011-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-08
    • 2022-11-16
    • 1970-01-01
    • 2013-07-18
    相关资源
    最近更新 更多