如何使用C#中的DataGridView控件

如题所述

DataGridView控件的使用 新的 DataGridView 是 .NET 2.0 中的一个新控件,是针对 .NET 1.x 中功能较差的标准 DataGrid 控件而设计的。Matthew MacDonald 在本文中论述了许多改进,包括:DataGridView 支持大量自定义和细致的格式设置、灵活的大小调整和选择、更好的性能以及更丰富的事件模型。.NET Framework 的前两个版本(.NET 1.0 和 .NET 1.1)在数据绑定方面留下了明显的空白。尽管开发人员拥有一个灵活的可配置模型,可以将几乎所有的控件链接到几乎所有的数据源,但却没有一种有效的方法来显示完整的信息表。可以实现此目的的唯一工具就是 DataGrid 控件,这种控件非常适合于处理简单的演示,但是不太适合实际代码。填补这项空白是 .NET 2.0 的主要目标之一,并且 Microsoft 已经用全新的网格控件 DataGridView 来实现此目标。DataGridView 有两个指导原则。首先,其目标是支持常见任务(如主控/详细列表、验证和数据格式设置),而不需要您编写许多代码。更重要的是,设计过程中始终考虑了扩展性,因此您可以集成所需的专用功能,而不必采用低级别的复杂编程。本页内容
基本数据绑定
美化 DataGridView
使用 DataGridView 选择单元格
DataGridView 对象
DataGridView 样式
自定义单元格格式按钮列图像列编辑 DataGridView处理错误验证输入使用列表列约束选择
小结基本数据绑定
熟悉 DataGridView 的最佳方法就是实际尝试一下,无需配置任何属性。就像 DataGrid 一样,您可以使用 DataSource 属性来绑定 DataTable 对象(或从 DataTable 派生的对象)。Dim ds As DataSet = GetDataSet()
DataGridView1.DataSource = ds.Tables(Customers)与 DataGrid 不同的是,DataGridView 一次只能显示一个表。如果绑定整个 DataSet,则不会显示任何数据,除非您使用要显示的表名设置了 DataMember 属性。DataGridView1.DataSource = ds
DataGridView1.DataMember = Customers基本的 DataGridView 显示遵循以下几项简单的规则:? 为数据源中的每个字段创建一列。
使用字段名称创建列标题。列标题是固定的,这意味着用户在列表中向下移动时列标题不会滚动出视图。
支持 Windows XP 视觉样式。您会注意到列标题具有新式的平面外观,并且当用户将鼠标移到其上时会突出显示。
DataGridView 还包括几个您可能不会立即注意到的默认行为:? 允许就地编辑。用户可以在单元格中双击或按 F2 来修改当前值。唯一的例外是将 DataColumn.ReadOnly 设置为 True 的字段(如当前示例中的 OrderID 字段)。
支持自动排序。用户可以在列标题中单击一次或两次,基于该字段中的值按升序或降序对值进行排序。默认情况下,排序时会考虑数据类型并按字母或数字顺序进行排序。字母顺序区分大小写。
允许不同类型的选择。用户可以通过单击并拖动来突出显示一个单元格、多个单元格或多个行。单击 DataGridView 左上角的方块可以选择整个表。
支持自动调整大小功能。用户可以在标题之间的列分隔符上双击,使左边的列自动按照单元格的内容展开或收缩。
返回页首美化 DataGridView
DataGridView 的默认外观仅仅比 DataGrid 略有改进,但是使用几项快速调整功能,您可以将其显著改进。其中的一个问题就是列无法自动展开以适合其包含的数据。您可以使用 DataGridView.AutoSizeColumns() 方法以及 DataGridViewAutoSizeColumnCriteria 枚举中的某个值来解决此问题。您可以选择根据标题文本、当前显示的行或表中的所有行的的宽度来调整列宽。' 根据标题或此列的某一行中
' 最长一段文本的宽度调整
' 列宽。
DataGridView1.AutoSizeColumns( _
DataGridViewAutoSizeColumnCriteria.HeaderAndRows)请记住,此方法必须在绑定数据后调用,否则不会产生任何效果。你可能还需要在用户编辑数据后使用它(可能在响应 DataGridView.CellValueChanged 等事件时)。如果不增加列宽,则可以更改行高。默认情况下,列中的文本会跨越多行。如果您使用 DataGridView.AutoSizeRows() 方法,则行会根据其中的内容调整高度。使用此方法前,您可能希望增加列宽,尤其是在字段包含大量文本时。例如,以下代码片段使“说明”列的列宽增加为原列宽的四倍,然后调整行高以容纳其内容。DataGridView.Columns(Description).Width *= 4
温馨提示:内容为网友见解,仅供参考
无其他回答

C#Winform的DataGridView:如何给表格控件绑定实体类的数据源
第一步是创建实体类,然后添加DataGridView控件至窗体。点击控件右上角的三角形图标,选择“添加项目源”,并将已创建的“Students”类绑定至控件。绑定后,DataGridView将自动生成标题列,对应于实体类中的属性,如“Name”、“Age”、“Score”等。接下来,进入编辑列阶段,可以调整列标题以更符合实际需...

C#简易实现WinForm的Datagridview的筛选
1. 创建Winform窗体,添加Datagridview控件,配置相关属性,将需筛选列的SortMode设为NotSortable。2. 使用ContextMenuStrip控件,为Datagridview列头添加点击事件,弹出筛选菜单,依据表格内容自动生成菜单项,并为菜单项添加点击事件。3. 在窗体类中声明变量,进行测试数据的初始化。4. 添加Datagridview控件列...

在使用c#的datagridview控件时,如何确保表格内容能够
首先,调整列宽以适应内容。手动或通过代码动态计算列宽,确保所有内容都能清晰可见。其次,启用自动调整列宽功能。DataGridView提供四种自动调整列宽的选项:None、AllCells、Fill 和 BasedOnHeaders。根据需要选择合适的选项。处理数据类型不匹配问题,确保数据源中的数据与DataGridView单元格格式相匹配。使用DataGr...

C# 怎么实现在textbox中填写信息,在datagridview中显示并更新数据库表...
首先,确保数据库已建立好并准备接收数据。创建一个数据集,如果数据库为空,确保返回一个结构化数据集,即使为空。在页面上添加一个DataGridView控件,并将其DataSource属性设置为该数据集。初始化一个名为colwgap的BoundColumn,为其设置列标题为"W-GAP"和数据字段为"wgap",并将其添加到DataGridView...

C# datagridview、datagrid、GridControl增加行号
在WinForm中,使用datagridview增加行号的步骤如下:1. 在界面中拖拽一个datagridview控件。2. 在datagridview的添加行事件中编写代码,这样每次添加新行时,该行将自动标记行号。在WPF中,通过datagrid实现行号增加:1. WPF中的表格控件为datagrid。2. 在datagrid的LoadingRow事件中编写代码,实现行号的添加...

C# WINFORM中datagridview控件如何在行标题(-1列)重绘加入checkbox实现...
要在 C# WinForms 的 DataGridView 控件的行标题中添加复选框实现全选功能,您可以使用以下步骤:为 DataGridView 控件添加一个 CellPainting 事件处理程序。可以在设计器中双击 DataGridView 控件,自动生成事件处理程序。在 CellPainting 事件处理程序中,检查 e.ColumnIndex 是否为 -1(行标题列)以及 e...

C#DataGridView控件怎么增加行、列?
1).声明结构,只记录窗体和其控件的初始位置和大小。public struct controlRect{public int Left;public int Top;public int Width;public int Height;} 实际操作起来可能没有你想象的那么简单,你需要响应Form Resize之类的事件,然后根据事件,实时逐个调整控件的大小。在WPF中就简单多了。

c#中的winform中的datagridview控件怎么获取隐藏的tag
在C#的WinForms中,DataGridView控件的每一行(即DataGridViewRow)都有一个Tag属性,你可以用它来存储任何你需要的信息。不过,这个Tag属性默认是隐藏的,你无法直接通过DataGridView的属性或方法访问它。但是,你可以通过访问DataGridViewRow的Tag属性来获取这个隐藏的Tag。以下是一个示例,展示了如何获取...

c#里点击datagridview中的下拉列表中的文字怎么设置弹出窗体
在 C# 中,要在点击 DataGridView 中的下拉列表中的文字时设置弹出窗体,你可以使用 DataGridView 的 CellClick 事件和 ContextMenuStrip 控件。以下是一个示例代码,演示了如何实现这一功能:在上述示例中,我们创建了一个窗体 Form1,其中包含一个 DataGridView 控件 dataGridView。首先,在 DataGridView...

如何使用C#中的DataGridView控件
1.先是:C#中的DataGridView控件使用出错:No row can be added to a DataGridView control that does not have columns 2.后来就可以正常显示数据了:相关代码:\/\/DataGridView init dgvSearchResult.ColumnCount = 13; \/\/dgvSearchResult.Rows.Add(); \/\/(1)title dgvSearchResult.Colu...

相似回答
大家正在搜