datagridview在vbnet中的操作技巧.docx

上传人:小飞机 文档编号:3155529 上传时间:2023-03-11 格式:DOCX 页数:10 大小:39.57KB
返回 下载 相关 举报
datagridview在vbnet中的操作技巧.docx_第1页
第1页 / 共10页
datagridview在vbnet中的操作技巧.docx_第2页
第2页 / 共10页
datagridview在vbnet中的操作技巧.docx_第3页
第3页 / 共10页
datagridview在vbnet中的操作技巧.docx_第4页
第4页 / 共10页
datagridview在vbnet中的操作技巧.docx_第5页
第5页 / 共10页
亲,该文档总共10页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《datagridview在vbnet中的操作技巧.docx》由会员分享,可在线阅读,更多相关《datagridview在vbnet中的操作技巧.docx(10页珍藏版)》请在三一办公上搜索。

1、datagridview在vbnet中的操作技巧DataGridView在中的操作技巧目录: 1、 取得或者修改当前单元格的内容 2、 设定单元格只读 3、 不显示最下面的新行 4、 判断新增行 5、 行的用户删除操作的自定义 6、 行、列的隐藏和删除 7、 禁止列或者行的Resize 8、 列宽和行高以及列头的高度和行头的宽度的自动调整 9、 冻结列或行 10、 列顺序的调整 11、 行头列头的单元格 12、 剪切板的操作 13、 单元格的ToolTip的设置 14、 右键菜单的设置 15、 单元格的边框、 网格线样式的设定 16、 单元格表示值的设定 17、 用户输入时,单元格输入值的设定

2、 18、 设定新加行的默认值 1、 DataGridView 取得或者修改当前单元格的内容: 当前单元格指的是 DataGridView 焦点所在的单元格,它可以通过 DataGridView 对象的 CurrentCell 属性取得。如果当前单元格不存在的时候,返回Nothing(C#是null) VB.NET 取得当前单元格内容 MessageBox.Show(DataGridView1.CurrentCell.Value) 取得当前单元格的列 Index MessageBox.Show(DataGridView1.CurrentCell.ColumnIndex) 取得当前单元格的行 In

3、dex MessageBox.Show(DataGridView1.CurrentCell.RowIndex) 另外,使用 DataGridView.CurrentCellAddress 属性来确定单元格所在的行:DataGridView.CurrentCellAddress.Y 和列: DataGridView.CurrentCellAddress.X 。这对于避免取消共享行的共享非常有用。 当前的单元格可以通过设定 DataGridView 对象的 CurrentCell 来改变。可以通过 CurrentCell 来设定 DataGridView 的激活单元格。将 CurrentCell

4、设为 Nothing(null) 可以取消激活的单元格。 VB.NET 设定 (0, 0) 为当前单元格 DataGridView1.CurrentCell = DataGridView1(0, 0) - 2、 DataGridView 设定单元格只读: 1) 使用 ReadOnly 属性 如果希望,DataGridView 内所有单元格都不可编辑, 那么只要: VB.NET 第 1 页 共 6 页 设置 DataGridView1 为只读 DataGridView1.ReadOnly = True 如果希望,DataGridView 内某个单元格不可编辑, 那么只要: VB.NET 设置 D

5、ataGridView1 的第2列整列单元格为只读 DataGridView1.Columns(1).ReadOnly = True 设置 DataGridView1 的第3行整行单元格为只读 DataGridView1.Rows(2).ReadOnly = True 设置 DataGridView1 的0,0单元格为只读 DataGridView1(0, 0).ReadOnly = True 2) 使用 EditMode 属性 DataGridView.EditMode 属性被设置为 DataGridViewEditMode.EditProgrammatically 时,用户就不能手动编辑单

6、元格的内容了。但是可以通过程序,调用 DataGridView.BeginEdit 方法,使单元格进入编辑模式进行编辑。 VB.NET DataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically 3) 根据条件设定单元格的不可编辑状态 当一个一个的通过单元格坐标设定单元格 ReadOnly 属性的方法太麻烦的时候,你可以通过 CellBeginEdit 事件来取消单元格的编辑。 VB.NET CellBeginEdit 事件处理方法 Private Sub DataGridView1_CellBeginEdit(ByVa

7、l sender As Object, _ ByVal e As DataGridViewCellCancelEventArgs) _ Handles DataGridView1.CellBeginEdit Dim dgv As DataGridView = CType(sender, DataGridView) 是否可以进行编辑的条件检查 If dgv.Columns(e.ColumnIndex).Name = Column1 AndAlso _ Not CBool(dgv(Column2, e.RowIndex).Value) Then 取消编辑 e.Cancel = True End I

8、f End Sub - 3、 DataGridView 不显示最下面的新行: 通常 DataGridView 的最下面一行是用户新追加的行。如果不想让用户新追加行即不想显示该新行,可以将 DataGridView 对象的 AllowUserToAddRows 属性设置为 False。 VB.NET 设置用户不能手动给 DataGridView1 添加新行 DataGridView1.AllowUserToAddRows = False 补足: 如果 DataGridView 的 DataSource 绑定的是 DataView, 还可以通过设置 DataView.AllowAdd 属性为 Fa

9、lse 来达到同样的效果。 - 第 2 页 共 6 页 4、 DataGridView 判断新增行: DataGridView的AllowUserToAddRows属性为True时也就是允许用户追加新行的场合下,DataGridView的最后一行就是新追加的行(*行)。使用 DataGridViewRow.IsNewRow 属性可以判断哪一行是新追加的行。另外,通过DataGridView.NewRowIndex 可以获取新行的行序列号。在没有新行的时候,NewRowIndex = -1。VB.NET If DataGridView1.CurrentRow.IsNewRow Then Cons

10、ole.WriteLine(当前行为新追加行。) Else Console.WriteLine(当前行不是新追加行。) End If - 5、 DataGridView 行的用户删除操作的自定义: 1) 无条件的限制行删除操作。 默认时,DataGridView 是允许用户进行行的删除操作的。如果设置 DataGridView对象的AllowUserToDeleteRows属性为 False 时, 用户的行删除操作就被禁止了。 VB.NET 禁止DataGridView1的行删除操作。 DataGridView1.AllowUserToDeleteRows = False 但是,通过 Data

11、GridViewRowCollection.Remove 还是可以进行行的删除。 补足: 如果 DataGridView 绑定的是 DataView 的话,通过 DataView.AllowDelete 也可以控制行的删除。 2) 行删除时的条件判断处理。 用户在删除行的时候,将会引发 DataGridView.UserDeletingRow 事件。 在这个事件里,可以判断条件并取消删除操作。 VB.NET DataGridView1 的 UserDeletingRow 事件 Private Sub DataGridView1_UserDeletingRow(ByVal sender As O

12、bject, _ ByVal e As DataGridViewRowCancelEventArgs) _ Handles DataGridView1.UserDeletingRow 删除前的用户确认。 If MessageBox.Show(确认要删除该行数据吗?, 删除确认, _ MessageBoxButtons.OKCancel, MessageBoxIcon.Question) _ Windows.Forms.DialogResult.OK Then 如果不是 OK,则取消。 e.Cancel = True End If End Sub - 6、 DataGridView 行、列的隐藏

13、和删除: 1) 行、列的隐藏 VB.NET DataGridView1的第一列隐藏 DataGridView1.Columns(0).Visible = False DataGridView1的第一行隐藏 第 3 页 共 6 页 DataGridView1.Rows(0).Visible = False 2) 行头、列头的隐藏 VB.NET 列头隐藏 DataGridView1.ColumnHeadersVisible = False 行头隐藏 DataGridView1.RowHeadersVisible = False 3) 行和列的删除 VB.NET 删除名为Column1的列 Data

14、GridView1.Columns.Remove(Column1) 删除第一列 DataGridView1.Columns.RemoveAt(0) 删除第一行 DataGridView1.Rows.RemoveAt(0) 4) 删除选中行 VB.NET For Each r As DataGridViewRow In DataGridView1.SelectedRows If Not r.IsNewRow Then DataGridView1.Rows.Remove(r) End If Next - 7、 DataGridView 禁止列或者行的Resize: 1) 禁止所有的列或者行的Res

15、ize VB.NET 禁止用户改变DataGridView1的所有列的列宽 DataGridView1.AllowUserToResizeColumns = False 禁止用户改变DataGridView1所有行的行高 DataGridView1.AllowUserToResizeRows = False 2) 禁止指定行或者列的Resize VB.NET 禁止用户改变DataGridView1的第一列的列宽 DataGridView1.Columns(0).Resizable = DataGridViewTriState.False 禁止用户改变DataGridView1的第一列的行宽 D

16、ataGridView1.Rows(0).Resizable = DataGridViewTriState.False 关于 NoSet 当 Resizable 属性设为 DataGridViewTriState.NotSet 时, 实际上会默认以 DataGridView 的 AllowUserToResizeColumns 和 AllowUserToResizeRows 的属性值进行设定。比如: DataGridView.AllowUserToResizeColumns = False 且 Resizable 是 NoSet 设定时,Resizable = False 。 判断 Resiz

17、able 是否是继承设定了 DataGridView 的 AllowUserToResizeColumns 和 AllowUserToResizeRows 的属性值, 可以根据 State 属性判断。如果 State 属性含有 ResizableSet,那么说明没有继承设定。 第 4 页 共 6 页 3) 列宽和行高的最小值的设定 VB.NET 第一列的最小列宽设定为 100 DataGridView1.Columns(0).MinimumWidth = 100 第一行的最小行高设定为 50 DataGridView1.Rows(0).MinimumHeight = 50 4) 禁止用户改变行

18、头的宽度以及列头的高度 VB.NET 禁止用户改变列头的高度 DataGridView1.ColumnHeadersHeightSizeMode = _ DataGridViewColumnHeadersHeightSizeMode.DisableResizing 禁止用户改变行头的宽度 DataGridView1.RowHeadersWidthSizeMode = _ DataGridViewRowHeadersWidthSizeMode.EnableResizing - 8、 DataGridView 列宽和行高自动调整的设定: 1) 设定行高和列宽自动调整 VB.NET 设定包括Head

19、er和所有单元格的列宽自动调整 DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells 设定包括Header和所有单元格的行高自动调整 DataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells 2)指定列或行自动调整 VB.NET 第一列自动调整 DataGridView1.Columns(0).AutoSizeMode = _ DataGridViewAutoSizeColumnMode.DisplayedCel

20、ls 3) 设定列头的高度和行头的宽度自动调整VB.NET 设定列头的宽度可以自由调整 DataGridView1.ColumnHeadersHeightSizeMode = _ DataGridViewColumnHeadersHeightSizeMode.AutoSize 设定行头的宽度可以自由调整 DataGridView1.RowHeadersWidthSizeMode = _ DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders 4) 随时自动调整 a, 临时的,让列宽自动调整,这和指定AutoSizeColumnsMode

21、属性一样。VB.NET 让 DataGridView1 的所有列宽自动调整一下。 DataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells) 让 DataGridView1 的第一列的列宽自动调整一下。 DataGridView1.AutoResizeColumn(0, DataGridViewAutoSizeColumnMode.AllCells) b,临时的,让行高自动调整 VB.NET 让 DataGridView1 的所有行高自动调整一下。 DataGridView1.AutoResizeRows(

22、DataGridViewAutoSizeRowsMode.AllCells) 第 5 页 共 6 页 让 DataGridView1 的第一行的行高自动调整一下。 DataGridView1.AutoResizeRow(0, DataGridViewAutoSizeRowMode.AllCells) c,临时的,让行头和列头自动调整 VB.NET 列头高度自动调整 DataGridView1.AutoResizeColumnHeadersHeight 行头宽度自动调整 DataGridView1.AutoResizeRowHeadersWidth( _ DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders) 关于性能: 通过 AutoSizeColumnsMode 或者 AutoSizeRowsMode 属性所指定的单元格进行自动调整时,如果调整次数过于多那么将可能导致性能下降,尤其是在行和列数比较多的情况下。在这时用 DisplayedCells 代替 AllCells 能减少非所见的单元格的调整,从而提高性能。 第 6 页 共 6 页

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号