DataGridViewCellStyle DataGridViewCellStyle DataGridViewCellStyle DataGridViewCellStyle Class

定义

表示应用到 DataGridView 控件中的各个单元格的格式设置和样式信息。Represents the formatting and style information applied to individual cells within a DataGridView control.

public ref class DataGridViewCellStyle : ICloneable
[System.ComponentModel.TypeConverter(typeof(System.Windows.Forms.DataGridViewCellStyleConverter))]
public class DataGridViewCellStyle : ICloneable
type DataGridViewCellStyle = class
    interface ICloneable
Public Class DataGridViewCellStyle
Implements ICloneable
继承
DataGridViewCellStyleDataGridViewCellStyleDataGridViewCellStyleDataGridViewCellStyle
属性
实现

示例

下面的代码示例演示在多个DataGridViewCellStyle对象上设置属性的效果。The following code example demonstrates the effect of setting properties on multiple DataGridViewCellStyle objects. 此示例DataGridView通过BackColor设置DefaultCellStyle属性上的属性, 设置中单元格的背景色。This example sets the background color of cells in the DataGridView by setting the BackColor property on the DefaultCellStyle property. 由于在BackColor AlternatingRowsDefaultCellStyle属性上设置了属性, 因此在交替行上将重写背景色。The background color is overridden on alternating rows because the BackColor property is set on the AlternatingRowsDefaultCellStyle property. 该示例还通过Last Prepared Format设置列的DefaultCellStyle属性上的属性来确定名为的列中日期的格式。The example also determines the format of dates in the column named Last Prepared by setting the Format property on the column's DefaultCellStyle property.

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;

public class Form1 : System.Windows.Forms.Form
{
    [STAThreadAttribute()]
    public static void Main()
    {
        Application.Run(new Form1());
    }

    private DataGridView dataGridView1 = new DataGridView();

    protected override void OnLoad(EventArgs e)
    {
        // Create the columns and load the data.
        PopulateDataGridView();

        // Configure the appearance and behavior of the DataGridView.
        InitializeDataGridView();

        // Initialize the form.
        this.Text = "DataGridView style demo";
        this.Size = new Size(600, 250);
        this.Controls.Add(dataGridView1);
        base.OnLoad(e);
    }

    // Configures the appearance and behavior of a DataGridView control.
    private void InitializeDataGridView()
    {
        // Initialize basic DataGridView properties.
        dataGridView1.Dock = DockStyle.Fill;
        dataGridView1.BackgroundColor = Color.LightGray;
        dataGridView1.BorderStyle = BorderStyle.Fixed3D;

        // Set property values appropriate for read-only display and 
        // limited interactivity. 
        dataGridView1.AllowUserToAddRows = false;
        dataGridView1.AllowUserToDeleteRows = false;
        dataGridView1.AllowUserToOrderColumns = true;
        dataGridView1.ReadOnly = true;
        dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
        dataGridView1.MultiSelect = false;
        dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None;
        dataGridView1.AllowUserToResizeColumns = false;
        dataGridView1.ColumnHeadersHeightSizeMode = 
            DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
        dataGridView1.AllowUserToResizeRows = false;
        dataGridView1.RowHeadersWidthSizeMode = 
            DataGridViewRowHeadersWidthSizeMode.DisableResizing;

        // Set the selection background color for all the cells.
        dataGridView1.DefaultCellStyle.SelectionBackColor = Color.White;
        dataGridView1.DefaultCellStyle.SelectionForeColor = Color.Black;

        // Set RowHeadersDefaultCellStyle.SelectionBackColor so that its default
        // value won't override DataGridView.DefaultCellStyle.SelectionBackColor.
        dataGridView1.RowHeadersDefaultCellStyle.SelectionBackColor = Color.Empty;

        // Set the background color for all rows and for alternating rows. 
        // The value for alternating rows overrides the value for all rows. 
        dataGridView1.RowsDefaultCellStyle.BackColor = Color.LightGray;
        dataGridView1.AlternatingRowsDefaultCellStyle.BackColor = Color.DarkGray;

        // Set the row and column header styles.
        dataGridView1.ColumnHeadersDefaultCellStyle.ForeColor = Color.White;
        dataGridView1.ColumnHeadersDefaultCellStyle.BackColor = Color.Black;
        dataGridView1.RowHeadersDefaultCellStyle.BackColor = Color.Black;

        // Set the Format property on the "Last Prepared" column to cause
        // the DateTime to be formatted as "Month, Year".
        dataGridView1.Columns["Last Prepared"].DefaultCellStyle.Format = "y";

        // Specify a larger font for the "Ratings" column. 
        using (Font font = new Font(
            dataGridView1.DefaultCellStyle.Font.FontFamily, 25, FontStyle.Bold))
        {
            dataGridView1.Columns["Rating"].DefaultCellStyle.Font = font;
        }

        // Attach a handler to the CellFormatting event.
        dataGridView1.CellFormatting += new
            DataGridViewCellFormattingEventHandler(dataGridView1_CellFormatting);
    }

    // Changes the foreground color of cells in the "Ratings" column 
    // depending on the number of stars. 
    private void dataGridView1_CellFormatting(object sender,
        DataGridViewCellFormattingEventArgs e)
    {
        if (e.ColumnIndex == dataGridView1.Columns["Rating"].Index
            && e.Value != null)
        {
            switch (e.Value.ToString().Length)
            {
                case 1:
                    e.CellStyle.SelectionForeColor = Color.Red;
                    e.CellStyle.ForeColor = Color.Red;
                    break;
                case 2:
                    e.CellStyle.SelectionForeColor = Color.Yellow;
                    e.CellStyle.ForeColor = Color.Yellow;
                    break;
                case 3:
                    e.CellStyle.SelectionForeColor = Color.Green;
                    e.CellStyle.ForeColor = Color.Green;
                    break;
                case 4:
                    e.CellStyle.SelectionForeColor = Color.Blue;
                    e.CellStyle.ForeColor = Color.Blue;
                    break;
            }
        }
    }

    // Creates the columns and loads the data.
    private void PopulateDataGridView()
    {
        // Set the column header names.
        dataGridView1.ColumnCount = 5;
        dataGridView1.Columns[0].Name = "Recipe";
        dataGridView1.Columns[1].Name = "Category";
        dataGridView1.Columns[2].Name = "Main Ingredients";
        dataGridView1.Columns[3].Name = "Last Prepared";
        dataGridView1.Columns[4].Name = "Rating";

        // Populate the rows.
        object[] row1 = new object[]{"Meatloaf", "Main Dish", 
            "ground beef", new DateTime(2000, 3, 23), "*"};
        object[] row2 = new object[]{"Key Lime Pie", "Dessert", 
            "lime juice, evaporated milk", new DateTime(2002, 4, 12), "****"};
        object[] row3 = new object[]{"Orange-Salsa Pork Chops", "Main Dish", 
            "pork chops, salsa, orange juice", new DateTime(2000, 8, 9), "****"};
        object[] row4 = new object[]{"Black Bean and Rice Salad", "Salad", 
            "black beans, brown rice", new DateTime(1999, 5, 7), "****"};
        object[] row5 = new object[]{"Chocolate Cheesecake", "Dessert", 
            "cream cheese", new DateTime(2003, 3, 12), "***"};
        object[] row6 = new object[]{"Black Bean Dip", "Appetizer",
            "black beans, sour cream", new DateTime(2003, 12, 23), "***"};

        // Add the rows to the DataGridView.
        object[] rows = new object[] { row1, row2, row3, row4, row5, row6 };
        foreach (object[] rowArray in rows)
        {
            dataGridView1.Rows.Add(rowArray);
        }

        // Adjust the row heights so that all content is visible.
        dataGridView1.AutoResizeRows(
            DataGridViewAutoSizeRowsMode.AllCellsExceptHeaders);
    }

}
Imports System.Drawing
Imports System.Collections
Imports System.ComponentModel
Imports System.Windows.Forms

Public Class Form1
    Inherits System.Windows.Forms.Form

    <STAThreadAttribute()> _
    Public Shared Sub Main()
        Application.Run(New Form1())
    End Sub

    Private WithEvents dataGridView1 As New DataGridView()

    Protected Overrides Sub OnLoad(ByVal e As EventArgs)

        ' Create the columns and load the data.
        PopulateDataGridView()

        ' Configure the appearance and behavior of the DataGridView.
        InitializeDataGridView()

        ' Initialize the form.
        Me.Text = "DataGridView style demo"
        Me.Size = New Size(600, 250)
        Me.Controls.Add(dataGridView1)
        MyBase.OnLoad(e)

    End Sub

    ' Configures the appearance and behavior of a DataGridView control.
    Private Sub InitializeDataGridView()

        ' Initialize basic DataGridView properties.
        dataGridView1.Dock = DockStyle.Fill
        dataGridView1.BackgroundColor = Color.LightGray
        dataGridView1.BorderStyle = BorderStyle.Fixed3D

        ' Set property values appropriate for read-only display and 
        ' limited interactivity. 
        dataGridView1.AllowUserToAddRows = False
        dataGridView1.AllowUserToDeleteRows = False
        dataGridView1.AllowUserToOrderColumns = True
        dataGridView1.ReadOnly = True
        dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
        dataGridView1.MultiSelect = False
        dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None
        dataGridView1.AllowUserToResizeColumns = False
        dataGridView1.ColumnHeadersHeightSizeMode = _
            DataGridViewColumnHeadersHeightSizeMode.DisableResizing
        dataGridView1.AllowUserToResizeRows = False
        dataGridView1.RowHeadersWidthSizeMode = _
            DataGridViewRowHeadersWidthSizeMode.DisableResizing

        ' Set the selection background color for all the cells.
        dataGridView1.DefaultCellStyle.SelectionBackColor = Color.White
        dataGridView1.DefaultCellStyle.SelectionForeColor = Color.Black

        ' Set RowHeadersDefaultCellStyle.SelectionBackColor so that its default
        ' value won't override DataGridView.DefaultCellStyle.SelectionBackColor.
        dataGridView1.RowHeadersDefaultCellStyle.SelectionBackColor = Color.Empty

        ' Set the background color for all rows and for alternating rows. 
        ' The value for alternating rows overrides the value for all rows. 
        dataGridView1.RowsDefaultCellStyle.BackColor = Color.LightGray
        dataGridView1.AlternatingRowsDefaultCellStyle.BackColor = Color.DarkGray

        ' Set the row and column header styles.
        dataGridView1.ColumnHeadersDefaultCellStyle.ForeColor = Color.White
        dataGridView1.ColumnHeadersDefaultCellStyle.BackColor = Color.Black
        dataGridView1.RowHeadersDefaultCellStyle.BackColor = Color.Black

        ' Set the Format property on the "Last Prepared" column to cause
        ' the DateTime to be formatted as "Month, Year".
        dataGridView1.Columns("Last Prepared").DefaultCellStyle.Format = "y"

        ' Specify a larger font for the "Ratings" column. 
        Dim font As New Font( _
            dataGridView1.DefaultCellStyle.Font.FontFamily, 25, FontStyle.Bold)
        Try
            dataGridView1.Columns("Rating").DefaultCellStyle.Font = font
        Finally
            font.Dispose()
        End Try

    End Sub

    ' Changes the foreground color of cells in the "Ratings" column 
    ' depending on the number of stars. 
    Private Sub dataGridView1_CellFormatting(ByVal sender As Object, _
        ByVal e As DataGridViewCellFormattingEventArgs) _
        Handles dataGridView1.CellFormatting

        If e.ColumnIndex = dataGridView1.Columns("Rating").Index _
            AndAlso e.Value IsNot Nothing Then

            Select Case e.Value.ToString().Length
                Case 1
                    e.CellStyle.SelectionForeColor = Color.Red
                    e.CellStyle.ForeColor = Color.Red
                Case 2
                    e.CellStyle.SelectionForeColor = Color.Yellow
                    e.CellStyle.ForeColor = Color.Yellow
                Case 3
                    e.CellStyle.SelectionForeColor = Color.Green
                    e.CellStyle.ForeColor = Color.Green
                Case 4
                    e.CellStyle.SelectionForeColor = Color.Blue
                    e.CellStyle.ForeColor = Color.Blue
            End Select

        End If

    End Sub

    ' Creates the columns and loads the data.
    Private Sub PopulateDataGridView()

        ' Set the column header names.
        dataGridView1.ColumnCount = 5
        dataGridView1.Columns(0).Name = "Recipe"
        dataGridView1.Columns(1).Name = "Category"
        dataGridView1.Columns(2).Name = "Main Ingredients"
        dataGridView1.Columns(3).Name = "Last Prepared"
        dataGridView1.Columns(4).Name = "Rating"

        ' Populate the rows.
        Dim row1() As Object = {"Meatloaf", "Main Dish", _
            "ground beef", New DateTime(2000, 3, 23), "*"}
        Dim row2() As Object = {"Key Lime Pie", "Dessert", _
            "lime juice, evaporated milk", New DateTime(2002, 4, 12), "****"}
        Dim row3() As Object = {"Orange-Salsa Pork Chops", "Main Dish", _
            "pork chops, salsa, orange juice", New DateTime(2000, 8, 9), "****"}
        Dim row4() As Object = {"Black Bean and Rice Salad", "Salad", _
            "black beans, brown rice", New DateTime(1999, 5, 7), "****"}
        Dim row5() As Object = {"Chocolate Cheesecake", "Dessert", _
            "cream cheese", New DateTime(2003, 3, 12), "***"}
        Dim row6() As Object = {"Black Bean Dip", "Appetizer", _
            "black beans, sour cream", New DateTime(2003, 12, 23), "***"}

        ' Add the rows to the DataGridView.
        Dim rows() As Object = {row1, row2, row3, row4, row5, row6}
        Dim rowArray As Object()
        For Each rowArray In rows
            dataGridView1.Rows.Add(rowArray)
        Next rowArray

        ' Adjust the row heights so that all content is visible.
        dataGridView1.AutoResizeRows( _
            DataGridViewAutoSizeRowsMode.AllCellsExceptHeaders)

    End Sub
End Class

注解

类可让你跨多个DataGridView单元格、行、列、行或列标题共享样式信息, 从而避免了在单个单元格上设置样式属性的内存需求。 DataGridViewCellStyleThe DataGridViewCellStyle class lets you share style information across multiple DataGridView cells, rows, columns, and row or column headers, avoiding the memory requirements of setting style properties on individual cells. 有关具有类型DataGridViewCellStyle为的属性的类以及它们彼此之间的关系的详细信息, 请参阅Windows 窗体 DataGridView 控件中的单元格样式For more information about classes that have a property of type DataGridViewCellStyle and how they relate to each other, see Cell Styles in the Windows Forms DataGridView Control.

构造函数

DataGridViewCellStyle() DataGridViewCellStyle() DataGridViewCellStyle() DataGridViewCellStyle()

使用默认属性值初始化 DataGridViewCellStyle 类的新实例。Initializes a new instance of the DataGridViewCellStyle class using default property values.

DataGridViewCellStyle(DataGridViewCellStyle) DataGridViewCellStyle(DataGridViewCellStyle) DataGridViewCellStyle(DataGridViewCellStyle) DataGridViewCellStyle(DataGridViewCellStyle)

使用指定的 DataGridViewCellStyle 的属性值初始化 DataGridViewCellStyle 类的新实例。Initializes a new instance of the DataGridViewCellStyle class using the property values of the specified DataGridViewCellStyle.

属性

Alignment Alignment Alignment Alignment

获取或设置一个值,该值指示 DataGridView 单元格内的单元格内容的位置。Gets or sets a value indicating the position of the cell content within a DataGridView cell.

BackColor BackColor BackColor BackColor

获取或设置 DataGridView 单元格的背景色。Gets or sets the background color of a DataGridView cell.

DataSourceNullValue DataSourceNullValue DataSourceNullValue DataSourceNullValue

获取或设置用户在单元格中输入 null 值时保存到数据源的值。Gets or sets the value saved to the data source when the user enters a null value into a cell.

Font Font Font Font

获取或设置应用于 DataGridView 单元格的文本内容的字体。Gets or sets the font applied to the textual content of a DataGridView cell.

ForeColor ForeColor ForeColor ForeColor

获取或设置 DataGridView 单元格的前景色。Gets or sets the foreground color of a DataGridView cell.

Format Format Format Format

获取或设置应用于 DataGridView 单元格的文本内容的格式字符串。Gets or sets the format string applied to the textual content of a DataGridView cell.

FormatProvider FormatProvider FormatProvider FormatProvider

获取或设置对象,该对象用于提供 DataGridView 单元格值的特定于区域性的格式设置。Gets or sets the object used to provide culture-specific formatting of DataGridView cell values.

IsDataSourceNullValueDefault IsDataSourceNullValueDefault IsDataSourceNullValueDefault IsDataSourceNullValueDefault

获取指示是否已设置 DataSourceNullValue 属性的值。Gets a value indicating whether the DataSourceNullValue property has been set.

IsFormatProviderDefault IsFormatProviderDefault IsFormatProviderDefault IsFormatProviderDefault

获取一个值,该值指示是否已设置了 FormatProvider 属性。Gets a value that indicates whether the FormatProvider property has been set.

IsNullValueDefault IsNullValueDefault IsNullValueDefault IsNullValueDefault

获取指示是否已设置 NullValue 属性的值。Gets a value indicating whether the NullValue property has been set.

NullValue NullValue NullValue NullValue

获取或设置与 DataGridViewnull 的单元格值对应的 Value 单元格显示值。Gets or sets the DataGridView cell display value corresponding to a cell value of Value or null.

Padding Padding Padding Padding

获取或设置 DataGridViewCell 的边缘和它的内容之间的距离。Gets or sets the space between the edge of a DataGridViewCell and its content.

SelectionBackColor SelectionBackColor SelectionBackColor SelectionBackColor

获取或设置 DataGridView 单元格在被选定时的背景色。Gets or sets the background color used by a DataGridView cell when it is selected.

SelectionForeColor SelectionForeColor SelectionForeColor SelectionForeColor

获取或设置 DataGridView 单元格在被选定时的前景色。Gets or sets the foreground color used by a DataGridView cell when it is selected.

Tag Tag Tag Tag

获取或设置包含了与 DataGridViewCellStyle 相关的其他数据的对象。Gets or sets an object that contains additional data related to the DataGridViewCellStyle.

WrapMode WrapMode WrapMode WrapMode

获取或设置一个值,该值指示当 DataGridView 单元格中的文本内容太长而不能放在单行中时,是将它换到下一行还是将它截断。Gets or sets a value indicating whether textual content in a DataGridView cell is wrapped to subsequent lines or truncated when it is too long to fit on a single line.

方法

ApplyStyle(DataGridViewCellStyle) ApplyStyle(DataGridViewCellStyle) ApplyStyle(DataGridViewCellStyle) ApplyStyle(DataGridViewCellStyle)

将指定的 DataGridViewCellStyle 应用于当前 DataGridViewCellStyleApplies the specified DataGridViewCellStyle to the current DataGridViewCellStyle.

Clone() Clone() Clone() Clone()

创建此 DataGridViewCellStyle 的一个精确副本。Creates an exact copy of this DataGridViewCellStyle.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

返回一个值,该值指示此实例是否与指定的对象等效。Returns a value indicating whether this instance is equivalent to the specified object.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

用作特定类型的哈希函数。Serves as a hash function for a particular type.

GetType() GetType() GetType() GetType()

获取当前实例的 TypeGets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

创建当前 Object 的浅表副本。Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

返回一个字符串,该字符串指示 DataGridViewCellStyle 的当前属性设置。Returns a string indicating the current property settings of the DataGridViewCellStyle.

显式界面实现

ICloneable.Clone() ICloneable.Clone() ICloneable.Clone() ICloneable.Clone()

创建此 DataGridViewCellStyle 的一个精确副本。Creates an exact copy of this DataGridViewCellStyle.

适用于

另请参阅