datagridview在vbnet中的操作技巧..doc

上传人:scccc 文档编号:12259117 上传时间:2021-12-02 格式:DOC 页数:12 大小:97KB
返回 下载 相关 举报
datagridview在vbnet中的操作技巧..doc_第1页
第1页 / 共12页
datagridview在vbnet中的操作技巧..doc_第2页
第2页 / 共12页
datagridview在vbnet中的操作技巧..doc_第3页
第3页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

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

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

2、前单元格的内容:当前单元格指的是DataGridView 焦点所在的单元格 ,它可以通过 DataGridView对象的 CurrentCell 属性取得。如果当前单元格不存在的时候,返回 Nothing(C#是nullVB.NET' 取得当前单元格内容MessageBox.Show(DataGridView1.CurrentCell.Value' 取得当前单元格的列 IndexMessageBox.Show(DataGridView1.CurrentCell.ColumnIndex' 取得当前单元格的行 IndexMessageBox.Show(DataGridVie

3、w1.CurrentCell.RowIndex另外 ,使用 DataGridView.CurrentCellAddress 属性 (而不是直接访问单元格来确定单元格所在的行 :DataGridView.CurrentCellAddress.Y 和列 :DataGridView.CurrentCellAddress.X 。这对于避免取消共享行的共享非常有用。当前的单元格可以通过设定DataGridView 对象的 CurrentCell 来改变。可以通过 CurrentCell 来设定DataGridView 的激活单元格。将CurrentCell 设为 Nothing(null 可以取消激活的

4、单元格。 VB.NET' 设定 (0, 0 为当前单元格DataGridView1.CurrentCell = DataGridView1(0, 0-2、DataGridView 设定单元格只读 :1 使用 ReadOnly 属性如果希望 ,DataGridView 内所有单元格都不可编辑,那么只要 :VB.NET' 设置 DataGridView1 为只读DataGridView1.ReadOnly = True如果希望 ,DataGridView 内某个单元格不可编辑 ,那么只要 :VB.NET' 设置 DataGridView1 的第 2 列整列单元格为只读Dat

5、aGridView1.Columns(1.ReadOnly = True' 设置 DataGridView1 的第 3 行整行单元格为只读DataGridView1.Rows(2.ReadOnly = True' 设置 DataGridView1 的0,0 单元格为只读DataGridView1(0, 0.ReadOnly = True2 使用 EditMode 属性DataGridView.EditMode 属性被设置为DataGridViewEditMode.EditProgrammatically 时 ,用户就不能手动编辑单元格的内容了。但是可以通过程序 ,调用 Data

6、GridView.BeginEdit 方法 ,使单元格进入编辑模式进行编辑。VB.NETDataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically3 根据条件设定单元格的不可编辑状态当一个一个的通过单元格坐标设定单元格 ReadOnly 属性的方法太麻烦的时候 , 你可以通过 CellBeginEdit 事件来取消单元格的编辑。VB.NET'CellBeginEdit 事件处理方法Private Sub DataGridView1_CellBeginEdit(ByVal sender As Object, _By

7、Val e As DataGridViewCellCancelEventArgs _Handles DataGridView1.CellBeginEditDim dgv As DataGridView = CType(sender, DataGridView' 是否可以进行编辑的条件检查If dgv.Columns(e.ColumnIndex.Name = "Column1" AndAlso _Not CBool(dgv("Column2", e.RowIndex.Value Then' 取消编辑e.Cancel = TrueEnd If

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

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

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

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

12、Row(ByVal sender As Object, _ByVal e As DataGridViewRowCancelEventArgs _Handles DataGridView1.UserDeletingRow' 删除前的用户确认。If MessageBox.Show("确认要删除该行数据吗 ?", " 删除确认 ", _MessageBoxButtons.OKCancel, MessageBoxIcon.Question <> _Windows.Forms.DialogResult.OK Then' 如果不是 OK,

13、则取消。e.Cancel = TrueEnd IfEnd Sub-6、DataGridView 行、列的隐藏和删除 :1 行、列的隐藏VB.NET' DataGridView1 的第一列隐藏DataGridView1.Columns(0.Visible = False' DataGridView1 的第一行隐藏DataGridView1.Rows(0.Visible = False2 行头、列头的隐藏VB.NET' 列头隐藏DataGridView1.ColumnHeadersVisible = False' 行头隐藏DataGridView1.RowHeade

14、rsVisible = False3 行和列的删除VB.NET' 删除名为 "Column1" 的列DataGridView1.Columns.Remove("Column1"' 删除第一列DataGridView1.Columns.RemoveAt(0' 删除第一行DataGridView1.Rows.RemoveAt(04 删除选中行VB.NETFor Each r As DataGridViewRow In DataGridView1.SelectedRowsIf Not r.IsNewRow ThenDataGridVie

15、w1.Rows.Remove(rEnd IfNext-7、DataGridView 禁止列或者行的Resize:1 禁止所有的列或者行的ResizeVB.NET' 禁止用户改变 DataGridView1 的所有列的列宽DataGridView1.AllowUserToResizeColumns = False'禁止用户改变 DataGridView1 所有行的行高DataGridView1.AllowUserToResizeRows = False2 禁止指定行或者列的ResizeVB.NET' 禁止用户改变 DataGridView1 的第一列的列宽DataGrid

16、View1.Columns(0.Resizable = DataGridViewTriState.False' 禁止用户改变 DataGridView1 的第一列的行宽DataGridView1.Rows(0.Resizable = DataGridViewTriState.False关于 NoSet当 Resizable 属性设为 DataGridViewTriState.NotSet 时,实际上会默认以DataGridView 的 AllowUserToResizeColumns 和 AllowUserToResizeRows 的属性值进行设定。比如 : DataGridView.

17、AllowUserToResizeColumns = False 且 Resizable是NoSet 设定时 ,Resizable = False。判断 Resizable 是否是继承设定了DataGridView 的 AllowUserToResizeColumns和 AllowUserToResizeRows 的属性值 ,可以根据 State 属性判断。如果 State属性含有 ResizableSet,那么说明没有继承设定。3 列宽和行高的最小值的设定VB.NET' 第一列的最小列宽设定为 100DataGridView1.Columns(0.MinimumWidth = 100

18、' 第一行的最小行高设定为 50DataGridView1.Rows(0.MinimumHeight = 504 禁止用户改变行头的宽度以及列头的高度VB.NET' 禁止用户改变列头的高度DataGridView1.ColumnHeadersHeightSizeMode = _DataGridViewColumnHeadersHeightSizeMode.DisableResizing' 禁止用户改变行头的宽度DataGridView1.RowHeadersWidthSizeMode = _DataGridViewRowHeadersWidthSizeMode.Enab

19、leResizing-8、DataGridView 列宽和行高自动调整的设定:1 设定行高和列宽自动调整VB.NET' 设定包括 Header和所有单元格的列宽自动调整DataGridView1.AutoSizeColumnsMode =DataGridViewAutoSizeColumnsMode.AllCells ' 设定包括 Header和所有单元格的行高自动调整DataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells2 指定列或行自动调整VB.NET' 第一列自动调整DataGr

20、idView1.Columns(0.AutoSizeMode = _DataGridViewAutoSizeColumnMode.DisplayedCells3 设定列头的高度和行头的宽度自动调整VB.NET' 设定列头的宽度可以自由调整DataGridView1.ColumnHeadersHeightSizeMode = _DataGridViewColumnHeadersHeightSizeMode.AutoSize' 设定行头的宽度可以自由调整DataGridView1.RowHeadersWidthSizeMode = _DataGridViewRowHeadersWi

21、dthSizeMode.AutoSizeToAllHeaders4 随时自动调整a,临时的 ,让列宽自动调整 ,这和指定 AutoSizeColumnsMode 属性一样。VB.NET ' 让 DataGridView1 的所有列宽自动调整一下。DataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells' 让 DataGridView1 的第一列的列宽自动调整一下。DataGridView1.AutoResizeColumn(0,DataGridViewAutoSizeColumnMode.A

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

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1