Winforms DataGridView特殊着色-哪种方式更适合样式或单元格格式事件?

Winforms DataGridView特殊着色-哪种方式更适合样式或单元格格式事件?,winforms,datagridview,Winforms,Datagridview,我想知道,对于datagridview单元格着色,哪种方法更有效 可以在设计时使用网格上设置的样式。但出于某些原因,我不经常使用这些 或 您可以处理网格中每个单元格的cellformatting事件并进行比较 我不知道样式是如何检查和应用样式的,但是如果它对每个单元格的调用少于单元格格式化事件,那么它似乎会更好。我不确定,所以我想我应该在这里问一下。事件确实是一个昂贵的选项,因为每次绘制它时,每个可见单元格都会调用它:如果您在代码中进行设置,我发现设置样式更容易: DataGridVi

我想知道,对于datagridview单元格着色,哪种方法更有效

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

您可以处理网格中每个单元格的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事件的原因之一是,我查看单元格中的值,并根据该值设置三种不同背景色中的一种。我怎样才能用一种风格完成类似的事情?我在看这个课程,不知道我会怎么做?你是对的,对于那个特定的场景,你需要使用CellFormatting。您可以使用适当的背景色缓存样式,并在事件中应用它们,这可能有助于提高性能。