DataGridView 类

本文介绍了DataGridView控件的基本使用方法及特性,包括如何自定义样式、显示数据和处理大量数据时的虚拟模式。提供了示例代码展示如何初始化DataGridView控件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


.NET Framework 2.0
20(共 47)对本文的评价是有帮助 评价此主题

注意:此类在 .NET Framework 2.0 版中是新增的。

在可自定义的网格中显示数据。

命名空间:System.Windows.Forms
程序集:System.Windows.Forms(在 system.windows.forms.dll 中)

[ComVisibleAttribute(true)] 
[ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)] 
publicclass DataGridView : Control, ISupportInitialize
J#
/** @attribute ComVisibleAttribute(true) */ 
/** @attribute ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) */ 
public class DataGridView extends Control implements ISupportInitialize
ComVisibleAttribute(true) 
ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) 
publicclass DataGridView extends Control implements ISupportInitialize

DataGridView 控件提供用来显示数据的可自定义表。使用 DataGridView 类,可以通过使用 DefaultCellStyleColumnHeadersDefaultCellStyleCellBorderStyle 和GridColor 等属性对单元格、行、列和边框进行自定义。有关更多信息,请参见 Windows 窗体 DataGridView 控件中的基本格式设置和样式设置

可以使用 DataGridView 控件来显示有基础数据源或没有基础数据源的数据。如果没有指定数据源,可以创建包含数据的列和行,并将它们直接添加到 DataGridView。或者,可以设置 DataSource 和 DataMember 属性,以便将 DataGridView 绑定到数据源,并自动用数据填充该控件。有关更多信息,请参见 在 Windows 窗体 DataGridView 控件中显示数据

在处理大量数据时,可以将 VirtualMode 属性设置为 true,以便显示可用数据的子集。虚拟模式要求实现用来填充 DataGridView 控件的数据缓存。有关更多信息,请参见Windows 窗体 DataGridView 控件中的数据显示模式

有关 DataGridView 控件中可用功能的其他信息,请参见 DataGridView 控件(Windows 窗体)

虽然 DataGridView 控件替代了以前版本的 DataGrid 控件并增加了功能,但是为了实现向后兼容并考虑到将来的使用(如果您选择的话),仍然保留了 DataGrid 控件。有关更多信息,请参见 Windows 窗体 DataGridView 控件和 DataGrid 控件之间的区别

下面的代码示例演示如何初始化一个未绑定的 DataGridView。要运行此示例,请将下面的代码粘贴到一个窗体中,该窗体包含一个名为 dataGridView1 的 DataGridView 以及三个名称分别为 addNewRowButtondeleteRowButton 和 ledgerStyleButton 的按钮。从窗体的构造函数或 Load 事件处理程序中调用 SetUpDataGridView 和PopulateDataGridView 方法。确保所有事件都与其事件处理程序关联。

privatevoid ledgerStyleButton_Click(object sender, System.EventArgs e)
{
    // Create a new cell style.
    DataGridViewCellStyle style = new DataGridViewCellStyle();
    {
        style.BackColor = Color.Beige;
        style.ForeColor = Color.Brown;
        style.Font = new Font("Verdana", 8);
    }

    // Apply the style as the default cell style.
    dataGridView1.AlternatingRowsDefaultCellStyle = style;
    ledgerStyleButton.Enabled = false;
}

privatevoid SetUpDataGridView()
{
    this.Controls.Add(dataGridView1);
    dataGridView1.ColumnCount = 5;
    DataGridViewCellStyle style = 
        dataGridView1.ColumnHeadersDefaultCellStyle;
    style.BackColor = Color.Navy;
    style.ForeColor = Color.White;
    style.Font = new Font(dataGridView1.Font, FontStyle.Bold);

    dataGridView1.EditMode = DataGridViewEditMode.EditOnEnter;
    dataGridView1.Name = "dataGridView1";
    dataGridView1.Location = new Point(8, 8);
    dataGridView1.Size = new Size(500, 300);
    dataGridView1.AutoSizeRowsMode = 
        DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders;
    dataGridView1.ColumnHeadersBorderStyle = 
        DataGridViewHeaderBorderStyle.Raised;
    dataGridView1.CellBorderStyle = DataGridViewCellBorderStyle.Single;
    dataGridView1.GridColor = SystemColors.ActiveBorder;
    dataGridView1.RowHeadersVisible = false;

    dataGridView1.Columns[0].Name = "Release Date";
    dataGridView1.Columns[1].Name = "Track";
    dataGridView1.Columns[1].DefaultCellStyle.Alignment = 
        DataGridViewContentAlignment.MiddleCenter;
    dataGridView1.Columns[2].Name = "Title";
    dataGridView1.Columns[3].Name = "Artist";
    dataGridView1.Columns[4].Name = "Album";

    // Make the font italic for row four.
    dataGridView1.Columns[4].DefaultCellStyle.Font = new Font(DataGridView.DefaultFont, FontStyle.Italic);

    dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
    dataGridView1.MultiSelect = false;

    dataGridView1.BackgroundColor = Color.Honeydew;

    dataGridView1.Dock = DockStyle.Fill;

    dataGridView1.CellFormatting += new DataGridViewCellFormattingEventHandler(dataGridView1_CellFormatting);
    dataGridView1.CellParsing += new DataGridViewCellParsingEventHandler(dataGridView1_CellParsing);
    addNewRowButton.Click += new EventHandler(addNewRowButton_Click);
    deleteRowButton.Click += new EventHandler(deleteRowButton_Click);
    ledgerStyleButton.Click += new EventHandler(ledgerStyleButton_Click);
    dataGridView1.CellValidating += new DataGridViewCellValidatingEventHandler(dataGridView1_CellValidating);

}

privatevoid PopulateDataGridView()
{

    // Create the string array for each row of data.string[] row0 = { "11/22/1968", "29", "Revolution 9", "Beatles", "The Beatles [White Album]" };
    string[] row1 = { "4/4/1960", "6", "Fools Rush In", "Frank Sinatra", "Nice 'N' Easy" };
    string[] row2 = { "11/11/1971", "1", "One of These Days", "Pink Floyd", "Meddle" };
    string[] row3 = { "4/4/1988", "7", "Where Is My Mind?", "Pixies", "Surfer Rosa" };
    string[] row4 = { "5/1981", "9", "Can't Find My Mind", "Cramps", "Psychedelic Jungle" };
    string[] row5 = { "6/10/2003", "13", "Scatterbrain. (As Dead As Leaves.)", "Radiohead", "Hail to the Thief" };
    string[] row6 = { "6/30/1992", "3", "Dress", "P J Harvey", "Dry" };

    // Add a row for each string array.
    {
        DataGridViewRowCollection rows = this.dataGridView1.Rows;
        rows.Add(row0);
        rows.Add(row1);
        rows.Add(row2);
        rows.Add(row3);
        rows.Add(row4);
        rows.Add(row5);
        rows.Add(row6);
    }

    // Change the order the columns are displayed.
    {
        DataGridViewColumnCollection columns = this.dataGridView1.Columns;
        columns[0].DisplayIndex = 3;
        columns[1].DisplayIndex = 4;
        columns[2].DisplayIndex = 0;
        columns[3].DisplayIndex = 1;
        columns[4].DisplayIndex = 2;
    }
}

System.Object
    System.MarshalByRefObject
      System.ComponentModel.Component
        System.Windows.Forms.Control
         System.Windows.Forms.DataGridView
此类型的任何公共静态(Visual Basic 中的  Shared)成员都是线程安全的,但不保证所有实例成员都是线程安全的。

Windows 98、Windows 2000 SP4、Windows Millennium Edition、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

.NET Framework
受以下版本支持:2.0

转自:

.NET Framework 2.0
20(共 47)对本文的评价是有帮助 评价此主题

注意:此类在 .NET Framework 2.0 版中是新增的。

在可自定义的网格中显示数据。

命名空间:System.Windows.Forms
程序集:System.Windows.Forms(在 system.windows.forms.dll 中)

[ComVisibleAttribute(true)] 
[ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)] 
publicclass DataGridView : Control, ISupportInitialize
J#
/** @attribute ComVisibleAttribute(true) */ 
/** @attribute ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) */ 
public class DataGridView extends Control implements ISupportInitialize
ComVisibleAttribute(true) 
ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) 
publicclass DataGridView extends Control implements ISupportInitialize

DataGridView 控件提供用来显示数据的可自定义表。使用 DataGridView 类,可以通过使用 DefaultCellStyleColumnHeadersDefaultCellStyleCellBorderStyle 和GridColor 等属性对单元格、行、列和边框进行自定义。有关更多信息,请参见 Windows 窗体 DataGridView 控件中的基本格式设置和样式设置

可以使用 DataGridView 控件来显示有基础数据源或没有基础数据源的数据。如果没有指定数据源,可以创建包含数据的列和行,并将它们直接添加到 DataGridView。或者,可以设置 DataSource 和 DataMember 属性,以便将 DataGridView 绑定到数据源,并自动用数据填充该控件。有关更多信息,请参见 在 Windows 窗体 DataGridView 控件中显示数据

在处理大量数据时,可以将 VirtualMode 属性设置为 true,以便显示可用数据的子集。虚拟模式要求实现用来填充 DataGridView 控件的数据缓存。有关更多信息,请参见Windows 窗体 DataGridView 控件中的数据显示模式

有关 DataGridView 控件中可用功能的其他信息,请参见 DataGridView 控件(Windows 窗体)

虽然 DataGridView 控件替代了以前版本的 DataGrid 控件并增加了功能,但是为了实现向后兼容并考虑到将来的使用(如果您选择的话),仍然保留了 DataGrid 控件。有关更多信息,请参见 Windows 窗体 DataGridView 控件和 DataGrid 控件之间的区别

下面的代码示例演示如何初始化一个未绑定的 DataGridView。要运行此示例,请将下面的代码粘贴到一个窗体中,该窗体包含一个名为 dataGridView1 的 DataGridView 以及三个名称分别为 addNewRowButtondeleteRowButton 和 ledgerStyleButton 的按钮。从窗体的构造函数或 Load 事件处理程序中调用 SetUpDataGridView 和PopulateDataGridView 方法。确保所有事件都与其事件处理程序关联。

privatevoid ledgerStyleButton_Click(object sender, System.EventArgs e)
{
    // Create a new cell style.
    DataGridViewCellStyle style = new DataGridViewCellStyle();
    {
        style.BackColor = Color.Beige;
        style.ForeColor = Color.Brown;
        style.Font = new Font("Verdana", 8);
    }

    // Apply the style as the default cell style.
    dataGridView1.AlternatingRowsDefaultCellStyle = style;
    ledgerStyleButton.Enabled = false;
}

privatevoid SetUpDataGridView()
{
    this.Controls.Add(dataGridView1);
    dataGridView1.ColumnCount = 5;
    DataGridViewCellStyle style = 
        dataGridView1.ColumnHeadersDefaultCellStyle;
    style.BackColor = Color.Navy;
    style.ForeColor = Color.White;
    style.Font = new Font(dataGridView1.Font, FontStyle.Bold);

    dataGridView1.EditMode = DataGridViewEditMode.EditOnEnter;
    dataGridView1.Name = "dataGridView1";
    dataGridView1.Location = new Point(8, 8);
    dataGridView1.Size = new Size(500, 300);
    dataGridView1.AutoSizeRowsMode = 
        DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders;
    dataGridView1.ColumnHeadersBorderStyle = 
        DataGridViewHeaderBorderStyle.Raised;
    dataGridView1.CellBorderStyle = DataGridViewCellBorderStyle.Single;
    dataGridView1.GridColor = SystemColors.ActiveBorder;
    dataGridView1.RowHeadersVisible = false;

    dataGridView1.Columns[0].Name = "Release Date";
    dataGridView1.Columns[1].Name = "Track";
    dataGridView1.Columns[1].DefaultCellStyle.Alignment = 
        DataGridViewContentAlignment.MiddleCenter;
    dataGridView1.Columns[2].Name = "Title";
    dataGridView1.Columns[3].Name = "Artist";
    dataGridView1.Columns[4].Name = "Album";

    // Make the font italic for row four.
    dataGridView1.Columns[4].DefaultCellStyle.Font = new Font(DataGridView.DefaultFont, FontStyle.Italic);

    dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
    dataGridView1.MultiSelect = false;

    dataGridView1.BackgroundColor = Color.Honeydew;

    dataGridView1.Dock = DockStyle.Fill;

    dataGridView1.CellFormatting += new DataGridViewCellFormattingEventHandler(dataGridView1_CellFormatting);
    dataGridView1.CellParsing += new DataGridViewCellParsingEventHandler(dataGridView1_CellParsing);
    addNewRowButton.Click += new EventHandler(addNewRowButton_Click);
    deleteRowButton.Click += new EventHandler(deleteRowButton_Click);
    ledgerStyleButton.Click += new EventHandler(ledgerStyleButton_Click);
    dataGridView1.CellValidating += new DataGridViewCellValidatingEventHandler(dataGridView1_CellValidating);

}

privatevoid PopulateDataGridView()
{

    // Create the string array for each row of data.string[] row0 = { "11/22/1968", "29", "Revolution 9", "Beatles", "The Beatles [White Album]" };
    string[] row1 = { "4/4/1960", "6", "Fools Rush In", "Frank Sinatra", "Nice 'N' Easy" };
    string[] row2 = { "11/11/1971", "1", "One of These Days", "Pink Floyd", "Meddle" };
    string[] row3 = { "4/4/1988", "7", "Where Is My Mind?", "Pixies", "Surfer Rosa" };
    string[] row4 = { "5/1981", "9", "Can't Find My Mind", "Cramps", "Psychedelic Jungle" };
    string[] row5 = { "6/10/2003", "13", "Scatterbrain. (As Dead As Leaves.)", "Radiohead", "Hail to the Thief" };
    string[] row6 = { "6/30/1992", "3", "Dress", "P J Harvey", "Dry" };

    // Add a row for each string array.
    {
        DataGridViewRowCollection rows = this.dataGridView1.Rows;
        rows.Add(row0);
        rows.Add(row1);
        rows.Add(row2);
        rows.Add(row3);
        rows.Add(row4);
        rows.Add(row5);
        rows.Add(row6);
    }

    // Change the order the columns are displayed.
    {
        DataGridViewColumnCollection columns = this.dataGridView1.Columns;
        columns[0].DisplayIndex = 3;
        columns[1].DisplayIndex = 4;
        columns[2].DisplayIndex = 0;
        columns[3].DisplayIndex = 1;
        columns[4].DisplayIndex = 2;
    }
}

System.Object
    System.MarshalByRefObject
      System.ComponentModel.Component
        System.Windows.Forms.Control
         System.Windows.Forms.DataGridView
此类型的任何公共静态(Visual Basic 中的  Shared)成员都是线程安全的,但不保证所有实例成员都是线程安全的。

Windows 98、Windows 2000 SP4、Windows Millennium Edition、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

.NET Framework
受以下版本支持:2.0

http://msdn.microsoft.com/zh-cn/library/system.windows.forms.datagridview(v=vs.80).aspx

.NET Framework 2.0
20(共 47)对本文的评价是有帮助 评价此主题

注意:此类在 .NET Framework 2.0 版中是新增的。

在可自定义的网格中显示数据。

命名空间:System.Windows.Forms
程序集:System.Windows.Forms(在 system.windows.forms.dll 中)

[ComVisibleAttribute(true)] 
[ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)] 
publicclass DataGridView : Control, ISupportInitialize
J#
/** @attribute ComVisibleAttribute(true) */ 
/** @attribute ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) */ 
public class DataGridView extends Control implements ISupportInitialize
ComVisibleAttribute(true) 
ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) 
publicclass DataGridView extends Control implements ISupportInitialize

DataGridView 控件提供用来显示数据的可自定义表。使用 DataGridView 类,可以通过使用 DefaultCellStyleColumnHeadersDefaultCellStyleCellBorderStyle 和GridColor 等属性对单元格、行、列和边框进行自定义。有关更多信息,请参见 Windows 窗体 DataGridView 控件中的基本格式设置和样式设置

可以使用 DataGridView 控件来显示有基础数据源或没有基础数据源的数据。如果没有指定数据源,可以创建包含数据的列和行,并将它们直接添加到 DataGridView。或者,可以设置 DataSource 和 DataMember 属性,以便将 DataGridView 绑定到数据源,并自动用数据填充该控件。有关更多信息,请参见 在 Windows 窗体 DataGridView 控件中显示数据

在处理大量数据时,可以将 VirtualMode 属性设置为 true,以便显示可用数据的子集。虚拟模式要求实现用来填充 DataGridView 控件的数据缓存。有关更多信息,请参见Windows 窗体 DataGridView 控件中的数据显示模式

有关 DataGridView 控件中可用功能的其他信息,请参见 DataGridView 控件(Windows 窗体)

虽然 DataGridView 控件替代了以前版本的 DataGrid 控件并增加了功能,但是为了实现向后兼容并考虑到将来的使用(如果您选择的话),仍然保留了 DataGrid 控件。有关更多信息,请参见 Windows 窗体 DataGridView 控件和 DataGrid 控件之间的区别

下面的代码示例演示如何初始化一个未绑定的 DataGridView。要运行此示例,请将下面的代码粘贴到一个窗体中,该窗体包含一个名为 dataGridView1 的 DataGridView 以及三个名称分别为 addNewRowButtondeleteRowButton 和 ledgerStyleButton 的按钮。从窗体的构造函数或 Load 事件处理程序中调用 SetUpDataGridView 和PopulateDataGridView 方法。确保所有事件都与其事件处理程序关联。

privatevoid ledgerStyleButton_Click(object sender, System.EventArgs e)
{
    // Create a new cell style.
    DataGridViewCellStyle style = new DataGridViewCellStyle();
    {
        style.BackColor = Color.Beige;
        style.ForeColor = Color.Brown;
        style.Font = new Font("Verdana", 8);
    }

    // Apply the style as the default cell style.
    dataGridView1.AlternatingRowsDefaultCellStyle = style;
    ledgerStyleButton.Enabled = false;
}

privatevoid SetUpDataGridView()
{
    this.Controls.Add(dataGridView1);
    dataGridView1.ColumnCount = 5;
    DataGridViewCellStyle style = 
        dataGridView1.ColumnHeadersDefaultCellStyle;
    style.BackColor = Color.Navy;
    style.ForeColor = Color.White;
    style.Font = new Font(dataGridView1.Font, FontStyle.Bold);

    dataGridView1.EditMode = DataGridViewEditMode.EditOnEnter;
    dataGridView1.Name = "dataGridView1";
    dataGridView1.Location = new Point(8, 8);
    dataGridView1.Size = new Size(500, 300);
    dataGridView1.AutoSizeRowsMode = 
        DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders;
    dataGridView1.ColumnHeadersBorderStyle = 
        DataGridViewHeaderBorderStyle.Raised;
    dataGridView1.CellBorderStyle = DataGridViewCellBorderStyle.Single;
    dataGridView1.GridColor = SystemColors.ActiveBorder;
    dataGridView1.RowHeadersVisible = false;

    dataGridView1.Columns[0].Name = "Release Date";
    dataGridView1.Columns[1].Name = "Track";
    dataGridView1.Columns[1].DefaultCellStyle.Alignment = 
        DataGridViewContentAlignment.MiddleCenter;
    dataGridView1.Columns[2].Name = "Title";
    dataGridView1.Columns[3].Name = "Artist";
    dataGridView1.Columns[4].Name = "Album";

    // Make the font italic for row four.
    dataGridView1.Columns[4].DefaultCellStyle.Font = new Font(DataGridView.DefaultFont, FontStyle.Italic);

    dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
    dataGridView1.MultiSelect = false;

    dataGridView1.BackgroundColor = Color.Honeydew;

    dataGridView1.Dock = DockStyle.Fill;

    dataGridView1.CellFormatting += new DataGridViewCellFormattingEventHandler(dataGridView1_CellFormatting);
    dataGridView1.CellParsing += new DataGridViewCellParsingEventHandler(dataGridView1_CellParsing);
    addNewRowButton.Click += new EventHandler(addNewRowButton_Click);
    deleteRowButton.Click += new EventHandler(deleteRowButton_Click);
    ledgerStyleButton.Click += new EventHandler(ledgerStyleButton_Click);
    dataGridView1.CellValidating += new DataGridViewCellValidatingEventHandler(dataGridView1_CellValidating);

}

privatevoid PopulateDataGridView()
{

    // Create the string array for each row of data.string[] row0 = { "11/22/1968", "29", "Revolution 9", "Beatles", "The Beatles [White Album]" };
    string[] row1 = { "4/4/1960", "6", "Fools Rush In", "Frank Sinatra", "Nice 'N' Easy" };
    string[] row2 = { "11/11/1971", "1", "One of These Days", "Pink Floyd", "Meddle" };
    string[] row3 = { "4/4/1988", "7", "Where Is My Mind?", "Pixies", "Surfer Rosa" };
    string[] row4 = { "5/1981", "9", "Can't Find My Mind", "Cramps", "Psychedelic Jungle" };
    string[] row5 = { "6/10/2003", "13", "Scatterbrain. (As Dead As Leaves.)", "Radiohead", "Hail to the Thief" };
    string[] row6 = { "6/30/1992", "3", "Dress", "P J Harvey", "Dry" };

    // Add a row for each string array.
    {
        DataGridViewRowCollection rows = this.dataGridView1.Rows;
        rows.Add(row0);
        rows.Add(row1);
        rows.Add(row2);
        rows.Add(row3);
        rows.Add(row4);
        rows.Add(row5);
        rows.Add(row6);
    }

    // Change the order the columns are displayed.
    {
        DataGridViewColumnCollection columns = this.dataGridView1.Columns;
        columns[0].DisplayIndex = 3;
        columns[1].DisplayIndex = 4;
        columns[2].DisplayIndex = 0;
        columns[3].DisplayIndex = 1;
        columns[4].DisplayIndex = 2;
    }
}

System.Object
    System.MarshalByRefObject
      System.ComponentModel.Component
        System.Windows.Forms.Control
         System.Windows.Forms.DataGridView
此类型的任何公共静态(Visual Basic 中的  Shared)成员都是线程安全的,但不保证所有实例成员都是线程安全的。

Windows 98、Windows 2000 SP4、Windows Millennium Edition、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

.NET Framework
受以下版本支持:2.0
一、对于MyMulDataGridViewHeader的使用的一个简单的示例 1、数据表 use master go --创建数据库 if exists(select * from sys.sysdatabases where name='TestDB') drop database TestDB go create database TestDB on ( name ='TestDB_data', filename = 'E:\Data\TestDB_data.mdf', size = 5mb, maxsize = 20mb, filegrowth = 10% ) log on ( name ='TestDB_log', filename = 'E:\Data\TestDB_log.ldf', size =3mb, maxsize = 10mb, filegrowth = 1mb ) go use TestDB go if exists(select * from sys.tables where name='UserInfo') drop table UserInfo go create table UserInfo ( id int primary key identity(1,1), uname varchar(20) not null, usex int not null, uage int not null, chineseremark int not null, matchremark int not null, englishremark int not null ) go insert into userinfo values('小谭',1,21,82,90,81) insert into userinfo values('小花',0,21,83,90,82) insert into userinfo values('小华',0,20,84,90,99) insert into userinfo values('小方',0,20,85,92,85) insert into userinfo values('小高',0,21,86,90,88) insert into userinfo values('小宁',1,21,87,90,89) insert into userinfo values('小江',1,21,88,90,92) insert into userinfo values('小艳',0,20,89,90,93) insert into userinfo values('小琼',0,21,92,98,95) go select * from userinfo //后台调用 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; using MyDataGridMultiHeaderHelp; namespace MyTest { public partial class Form3 : Form { public Form3() { InitializeComponent(); } DataGridView dgv = new DataGridView(); private void Form3_Load(object sender, EventArgs e) { SqlConnection conn = new SqlConnection("Server=.;DataBase=TestDB;Uid=sa;Pwd=123456"); SqlCommand cmd = new SqlCommand("select * from userinfo", conn); SqlDataAdapter sda = new SqlDataAdapter(); sda.SelectCommand = cmd; DataSet ds = new DataSet(); sda.Fill(ds); DataTable dt = ds.Tables[0]; //清除原有的控件 if (dgv != null && dgv.Name != "Mydgv") { panel1.Controls.RemoveByKey(dgv.Name); dgv.Dispose(); dgv = null; } dgv = CreateDataGridView(); dgv.DataSource = dt; this.panel1.Controls.Add(dgv); } private MyMulDataGridViewHeader CreateDataGridView() { MyMulDataGridViewHeader dgv = DataIntance.InstanceDataGridView(); DataIntance intance = new DataIntance(dgv); TreeView mytv = new TreeView();//实例树。以树节点为多表头节点 intance.SetData(mytv.Nodes, "学员信息表"); intance.SetData(mytv.Nodes[0].Nodes, "ID编号"); intance.SetData(mytv.Nodes[0].Nodes, "姓名"); intance.SetData(mytv.Nodes[0].Nodes, "性别"); intance.SetData(mytv.Nodes[0].Nodes, "年龄"); intance.SetData(mytv.Nodes[0].Nodes, "成绩"); intance.SetData(mytv.Nodes[0].Nodes[4].Nodes, "语文"); intance.SetData(mytv.Nodes[0].Nodes[4].Nodes, "数学"); intance.SetData(mytv.Nodes[0].Nodes[4].Nodes, "英语"); intance.SetProperty("ID"); intance.SetProperty("uname"); intance.SetProperty("usex"); intance.SetProperty("uage"); intance.SetProperty("chineseremark"); intance.SetProperty("matchremark"); intance.SetProperty("englishremark"); dgv.ColumnTreeView = new TreeView[] { mytv }; dgv.ColumnDeep = 3; return dgv; } } } 二、GridView多表头的使用 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data.SqlClient; using System.Data; using MyDataGridMultiHeaderHelp; namespace MyWeb { public partial class GridViewMulRow : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { GetMulData(); } } private void GetMulData() { SqlConnection conn = new SqlConnection("Server=.;DataBase=TestDB;Uid=sa;Pwd=123456"); SqlCommand cmd = new SqlCommand("select * from userinfo", conn); SqlDataAdapter sda = new SqlDataAdapter(); sda.SelectCommand = cmd; DataSet ds = new DataSet(); sda.Fill(ds); DataTable dt = ds.Tables[0]; this.gvTest.DataSource = dt; this.gvTest.DataBind(); TableCellCollection tcHeader = this.gvTest.HeaderRow.Cells; tcHeader.Clear(); GridViewMulRowHeader gv = new GridViewMulRowHeader(tcHeader); gv.InstanceTableCell("学员信息表</th></tr><tr>", "colspan", "7"); gv.InstanceTableCell("ID编号", "rowspan", "2"); gv.InstanceTableCell("姓名", "rowspan", "2"); gv.InstanceTableCell("性别", "rowspan", "2"); gv.InstanceTableCell("年龄", "rowspan", "2"); gv.InstanceTableCell("成绩</th></tr><tr>", "colspan", "3"); gv.InstanceTableCell("语文"); gv.InstanceTableCell("数学"); gv.InstanceTableCell("英语"); } } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值