已阅读5页,还剩70页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
DataGridView控件用法合集1.当前的单元格属性取得、变更Console.WriteLine(DataGridView1.CurrentCell.Value)Console.WriteLine(DataGridView1.CurrentCell.ColumnIndex)Console.WriteLine(DataGridView1.CurrentCell.RowIndex)DataGridView1.CurrentCell = DataGridView1(0, 0)2.DataGridView编辑属性全部单元格编辑属性DataGridView1.ReadOnly = True指定行列单元格编辑属性DataGridView1.Columns(1).ReadOnly = TrueDataGridView1.Rows(2).ReadOnly = TrueDataGridView1(0, 0).ReadOnly = True根据条件判断单元格的编辑属性下例中column2的值是True的时候,Column1设为可编辑Private Sub DataGridView1_CellBeginEdit(ByVal 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 IfEnd Sub3.DataGridView最下面一列新追加行非表示DataGridView1.AllowUserToAddRows = False4.判断当前选中行是否为新追加的行If DataGridView1.CurrentRow.IsNewRow Then Console.WriteLine(現在行、新行。)Else Console.WriteLine(現在行、新行。)End If5. DataGridView删除行可否设定DataGridView1.AllowUserToDeleteRows = False根据条件判断当前行是否要删除Private Sub DataGridView1_UserDeletingRow(ByVal sender As Object, _ ByVal e As DataGridViewRowCancelEventArgs) _ Handles DataGridView1.UserDeletingRow If MessageBox.Show(列削除?, 削除確認, _ MessageBoxButtons.OKCancel, MessageBoxIcon.Question) Windows.Forms.DialogResult.OK Then e.Cancel = True End IfEnd Sub6. DataGridView行列不表示和删除行列不表示DataGridView1.Columns(0).Visible = FalseDataGridView1.Rows(0).Visible = False行列表头部分不表示DataGridView1.ColumnHeadersVisible = FalseDataGridView1.RowHeadersVisible = False指定行列删除DataGridView1.Columns.Remove(Column1)DataGridView1.Columns.RemoveAt(0)DataGridView1.Rows.RemoveAt(0)选择的行列删除(多行列)Dim r As DataGridViewRowFor Each r In DataGridView1.SelectedRows If Not r.IsNewRow Then DataGridView1.Rows.Remove(r) End IfNext r7. DataGridView行列宽度高度设置为不能编辑DataGridView1.AllowUserToResizeColumns = FalseDataGridView1.AllowUserToResizeRows = False指定行列宽度高度设置为不能编辑DataGridView1.Columns(0).Resizable = DataGridViewTriState.FalseDataGridView1.Rows(0).Resizable = DataGridViewTriState.False列幅行高最小值设定DataGridView1.Columns(0).MinimumWidth = 100DataGridView1.Rows(0).MinimumHeight = 50行列表头部分行高列幅设置为不能编辑DataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizingDataGridView1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.EnableResizing8. DataGridView行高列幅自动调整DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCellsDataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells表头部分行高列幅自动调整DataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSizeDataGridView1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders指定列自动调整DataGridView1.Columns(0).AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells9. DataGridView指定行列冻结列冻结(当前列以及左侧做所有列)DataGridView1.Columns(1).Frozen = True行冻结(当前行以及上部所有行)DataGridView1.Rows(2).Frozen = True指定单元格冻结(单元格所在行上部分所有行,列左侧所有列)DataGridView1(0, 0). Frozen = True10. DataGridView列顺序变更可否设定DataGridView1.AllowUserToOrderColumns = True但是如果列冻结的情况下,冻结的部分不能变更到非冻结的部分。变更后列位置取得Console.WriteLine(DataGridView1.Columns(Column1).DisplayIndex)DataGridView1.Columns(Column1).DisplayIndex = 011. DataGridView行复数选择复数行选择不可DataGridView1.MultiSelect = False单元格选择的时候默认为选择整行DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect12. DataGridView选择的行、列、单元格取得Console.WriteLine(選択)For Each c As DataGridViewCell In DataGridView1.SelectedCells Console.WriteLine(0, 1, c.ColumnIndex, c.RowIndex)Next cConsole.WriteLine(選択行)For Each r As DataGridViewRow In DataGridView1.SelectedRows Console.WriteLine(r.Index)Next rConsole.WriteLine(選択列)For Each c As DataGridViewColumn In DataGridView1.SelectedColumns Console.WriteLine(c.Index)Next c指定行、列、单元格取得DataGridView1(0, 0).Selected = TrueDataGridView1.Rows(1).Selected = TrueDataGridView1.Columns(2).Selected = True13. DataGridView指定单元格是否表示If Not DataGridView1(0, 0).Displayed AndAlso _ DataGridView1(0, 0).Visible Then DataGridView1.CurrentCell = DataGridView1(0, 0)End If14. DataGridView表头部单元格取得DataGridView1.Columns(0).HeaderCell.Value = 列DataGridView1.Rows(0).HeaderCell.Value = 行DataGridView1.TopLeftHeaderCell.Value = 左上15. DataGridView表头部单元格文字列设定更改列Header表示文字列DataGridView1.Columns(0).HeaderText = 列更改行Header表示文字列Dim i As IntegerFor i = 0 To DataGridView1.Rows.Count - 1 DataGridView1.Rows(i).HeaderCell.Value = i.ToString()Next iDataGridView1.AutoResizeRowHeadersWidth(DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders)最左上Header单元格文字列DataGridView1.TopLeftHeaderCell.Value = /16. DataGridView选择的部分拷贝至剪贴板拷贝模式设定DataGridView1.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText选中部分拷贝Clipboard.SetDataObject(DataGridView1.GetClipboardContent()17.DataGridView粘贴If DataGridView1.CurrentCell Is Nothing Then ReturnEnd IfDim insertRowIndex As Integer = DataGridView1.CurrentCell.RowIndexDim pasteText As String = Clipboard.GetText()If String.IsNullOrEmpty(pasteText) Then ReturnEnd IfpasteText = pasteText.Replace(vbCrLf, vbLf)pasteText = pasteText.Replace(vbCr, vbLf)pasteText.TrimEnd(New Char() vbLf)Dim lines As String() = pasteText.Split(vbLf)Dim isHeader As Boolean = TrueFor Each line As String In lines If isHeader Then isHeader = False Else Dim vals As String() = line.Split(ControlChars.Tab) If vals.Length - 1 DataGridView1.ColumnCount Then Throw New ApplicationException(列数違。) End If Dim row As DataGridViewRow = DataGridView1.Rows(insertRowIndex) row.HeaderCell.Value = vals(0) Dim i As Integer For i = 0 To row.Cells.Count - 1 row.Cells(i).Value = vals(i + 1) Next i insertRowIndex += 1 End IfNext line18. DataGridView单元格上ToolTip表示设定(鼠标移动到相应单元格上时,弹出说明信息)DataGridView1(0, 0).ToolTipText = 変更DataGridView1.Columns(0).ToolTipText = 列数字入力DataGridView1.Rows(0).HeaderCell.ToolTipText = 行変更CellToolTipTextNeeded事件,在多个单元格使用相同的ToolTips的时候,可以用该事件,下例为显示当前单元格的行号和列号Private Sub DataGridView1_CellToolTipTextNeeded(ByVal sender As Object, _ ByVal e As DataGridViewCellToolTipTextNeededEventArgs) _ Handles DataGridView1.CellToolTipTextNeeded e.ToolTipText = e.ColumnIndex.ToString() + , + e.RowIndex.ToString()End Sub19. DataGridView中的ContextMenuStrip属性DataGridView1.ContextMenuStrip = Me.ContextMenuStrip1DataGridView1.Columns(0).ContextMenuStrip = Me.ContextMenuStrip2DataGridView1.Columns(0).HeaderCell.ContextMenuStrip = Me.ContextMenuStrip2DataGridView1.Rows(0).ContextMenuStrip = Me.ContextMenuStrip3DataGridView1(1, 0).ContextMenuStrip = Me.ContextMenuStrip4也可以用CellContextMenuStripNeeded、RowContextMenuStripNeeded属性进行定义Private Sub DataGridView1_CellContextMenuStripNeeded( _ ByVal sender As Object, _ ByVal e As DataGridViewCellContextMenuStripNeededEventArgs) _ Handles DataGridView1.CellContextMenuStripNeeded Dim dgv As DataGridView = CType(sender, DataGridView) If e.RowIndex 0 Then e.ContextMenuStrip = Me.ContextMenuStrip1 ElseIf e.ColumnIndex 0 Then e.ContextMenuStrip = Me.ContextMenuStrip2 ElseIf TypeOf (dgv(e.ColumnIndex, e.RowIndex).Value) Is Integer Then e.ContextMenuStrip = Me.ContextMenuStrip3 End IfEnd Sub20.指定DataGridView的滚动框位置DataGridView1.FirstDisplayedScrollingRowIndex = 0DataGridView1.FirstDisplayedScrollingColumnIndex = 021. DataGridView手动追加列DataGridView1.AutoGenerateColumns = FalseDataGridView1.DataSource = BindingSource1Dim textColumn As New DataGridViewTextBoxColumn()textColumn.DataPropertyName = Column1textColumn.Name = Column1textColumn.HeaderText = Column1DataGridView1.Columns.Add(textColumn)22. DataGridView全体分界线样式设置DataGridView1.BorderStyle = BorderStyle.Fixed3D单元格上下左右分界线样式设置DataGridView1.AdvancedCellBorderStyle.Top = DataGridViewAdvancedCellBorderStyle.InsetDoubleDataGridView1.AdvancedCellBorderStyle.Right = DataGridViewAdvancedCellBorderStyle.InsetDataGridView1.AdvancedCellBorderStyle.Bottom = DataGridViewAdvancedCellBorderStyle.InsetDataGridView1.AdvancedCellBorderStyle.Left = DataGridViewAdvancedCellBorderStyle.InsetDouble23.根据DataGridView单元格属性更改显示内容如下例,当该列是字符串时,自动转换文字大小写Private Sub DataGridView1_CellFormatting(ByVal sender As Object, _ ByVal e As DataGridViewCellFormattingEventArgs) _ Handles DataGridView1.CellFormatting Dim dgv As DataGridView = CType(sender, DataGridView) If dgv.Columns(e.ColumnIndex).Name = Column1 AndAlso _ TypeOf e.Value Is String Then Dim str As String = e.Value.ToString() e.Value = str.ToUpper() e.FormattingApplied = True End IfEnd Sub24. DataGridView新追加行的行高样式设置行高设置DataGridView1.RowTemplate.Height = 50DataGridView1.RowTemplate.MinimumHeight = 50样式设置DataGridView1.DefaultCellStyle.BackColor = Color.Yellow25. DataGridView新追加行单元格默认值设置Private Sub DataGridView1_DefaultValuesNeeded(ByVal sender As Object, _ ByVal e As DataGridViewRowEventArgs) _ Handles DataGridView1.DefaultValuesNeeded e.Row.Cells(Column1).Value = 0 e.Row.Cells(Column2).Value = -End Sub26. DataGridView单元格数据错误标签表示DataGridView1(0, 0).ErrorText = 値確認。DataGridView1.Rows(3).ErrorText = 負値入力。在大量单元格需要错误提示时,也可以用CellErrorTextNeeded、RowErrorTextNeeded事件Private Sub DataGridView1_CellErrorTextNeeded(ByVal sender As Object, _ ByVal e As DataGridViewCellErrorTextNeededEventArgs) _ Handles DataGridView1.CellErrorTextNeeded Dim dgv As DataGridView = CType(sender, DataGridView) Dim cellVal As Object = dgv(e.ColumnIndex, e.RowIndex).Value If TypeOf cellVal Is Integer AndAlso CInt(cellVal) 0 Then e.ErrorText = 負整数入力。 End IfEnd SubPrivate Sub DataGridView1_RowErrorTextNeeded(ByVal sender As Object, _ ByVal e As DataGridViewRowErrorTextNeededEventArgs) _ Handles DataGridView1.RowErrorTextNeeded Dim dgv As DataGridView = CType(sender, DataGridView) If dgv(Column1, e.RowIndex).Value Is DBNull.Value AndAlso _ dgv(Column2, e.RowIndex).Value Is DBNull.Value Then e.ErrorText = _ 少Column1Column2値入力。 End IfEnd Sub27. DataGridView单元格内输入值正确性判断Private Sub DataGridView1_CellValidating(ByVal sender As Object, _ ByVal e As DataGridViewCellValidatingEventArgs) _ Handles DataGridView1.CellValidating Dim dgv As DataGridView = CType(sender, DataGridView) If dgv.Columns(e.ColumnIndex).Name = Column1 AndAlso _ e.FormattedValue.ToString() = Then dgv.Rows(e.RowIndex).ErrorText = 値入力。 e.Cancel = True End IfEnd SubPrivate Sub DataGridView1_CellValidated(ByVal sender As Object, _ ByVal e As DataGridViewCellEventArgs) _ Handles DataGridView1.CellValidated Dim dgv As DataGridView = CType(sender, DataGridView) dgv.Rows(e.RowIndex).ErrorText = NothingEnd Sub28. DataGridView单元格输入错误值事件的捕获Private Sub DataGridView1_DataError(ByVal sender As Object, _ ByVal e As DataGridViewDataErrorEventArgs) _ Handles DataGridView1.DataError If Not (e.Exception Is Nothing) Then MessageBox.Show(Me, _ String.Format(0, 1) 発生。 + _ vbCrLf + vbCrLf + 説明: 2, _ e.ColumnIndex, e.RowIndex, e.Exception.Message), _ 発生, _ MessageBoxButtons.OK, _ MessageBoxIcon.Error) End IfEnd Sub输入错误值时返回原先数据Private Sub DataGridView1_DataError(ByVal sender As Object, _ ByVal e As DataGridViewDataErrorEventArgs) _ Handles DataGridView1.DataError e.Cancel = FalseEnd Sub29. DataGridView行排序(点击列表头自动排序的设置)For Each c As DataGridViewColumn In DataGridView1.Columns c.SortMode = DataGridViewColumnSortMode.NotSortableNext c30. DataGridView自动行排序(新追加值也会自动排序)Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load Dim c As DataGridViewColumn For Each c In DataGridView1.Columns c.SortMode = DataGridViewColumnSortMode.Automatic Next cEnd SubPrivate Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click If DataGridView1.CurrentCell Is Nothing Then Return End If Dim sortColumn As DataGridViewColumn = _ DataGridView1.CurrentCell.OwningColumn Dim sortDirection As System.ComponentModel.ListSortDirection = _ System.ComponentModel.ListSortDirection.Ascending If Not (DataGridView1.SortedColumn Is Nothing) AndAlso _ DataGridView1.SortedColumn.Equals(sortColumn) Then sortDirection = IIf(DataGridView1.SortOrder = SortOrder.Ascending, _ System.ComponentModel.ListSortDirection.Descending, _ System.ComponentModel.ListSortDirection.Ascending) End If DataGridView1.Sort(sortColumn, sortDirection)End Sub31. DataGridView自动行排序禁止情况下的排序Private Sub DataGridView1_ColumnHeaderMouseClick(ByVal sender As Object, _ ByVal e As DataGridViewCellMouseEventArgs) _ Handles DataGridView1.ColumnHeaderMouseClick Dim clickedColumn As DataGridViewColumn = _ DataGridView1.Columns(e.ColumnIndex) If clickedColumn.SortMode DataGridViewColumnSortMode.Automatic Then Me.SortRows(clickedColumn, True) End IfEnd SubPrivate Sub DataGridView1_RowsAdded(ByVal sender As Object, _ ByVal e As DataGridViewRowsAddedEventArgs) _ Handles DataGridView1.RowsAdded Me.SortRows(DataGridView1.SortedColumn, False)End SubPrivate Sub DataGridView1_CellValueChanged(ByVal sender As Object, _ ByVal e As DataGridViewCellEventArgs) _ Handles DataGridView1.CellValueChanged If Not (DataGridView1.SortedColumn Is Nothing) AndAlso _ e.ColumnIndex = DataGridView1.SortedColumn.Index Then Me.SortRows(DataGridView1.SortedColumn, False) End IfEnd SubPrivate Sub SortRows(ByVal sortColumn As DataGridViewColumn, _ ByVal orderToggle As Boolean) If sortColumn Is Nothing Then Return End If If sortColumn.SortMode = DataGridViewColumnSortMode.Programmatic AndAlso _ Not (DataGridView1.SortedColumn Is Nothing) AndAlso _ Not DataGridView1.SortedColumn.Equals(sortColumn) Then DataGridView1.SortedColumn.HeaderCell.SortGlyphDirection = _ SortOrder.None End If Dim sortDirection As System.ComponentModel.ListSortDirection If orderToggle Then sortDirection = IIf(DataGridView1.SortOrder = SortOrder.Descending, _ System.ComponentModel.ListSortDirection.Ascending, _ System.ComponentModel.ListSortDirection.Descending) Else sortDirection = IIf(DataGridView1.SortOrder = SortOrder.Descending, _ System.ComponentModel.ListSortDirection.Descending, _ System.ComponentModel.ListSortDirection.Ascending) End If Dim sOrder As SortOrder = _ IIf(sortDirection = System.ComponentModel.ListSortDirection.Ascending, _ SortOrder.Ascending, SortOrder.Descending) DataGridView1.Sort(sortColumn, sortDirection) If sortColumn.SortMode = DataGridViewColumnSortMode.Programmatic Then sortColumn.HeaderCell.SortGlyphDirection = sOrder End IfEnd Sub32. DataGridView指定列指定排序Dim dt As DataTable = CType(DataGridView1.DataSource, DataTable)Dim dv As DataView = dt.DefaultViewdv.Sort = Column1, Column2 ASCDataGridView1.Columns(Column1).HeaderCell.SortGlyphDirection = SortOrder.AscendingDataGridView1.Columns(Column2).HeaderCell.SortGlyphDirection = SortOrder.Ascending33. DataGridView单元格样式设置指定行列的样式设定DataGridView1.Columns(0).DefaultCellStyle.BackColor = Color.AquaDataGridView1.Rows(0).DefaultCellStyle.BackColor = Color.LightGray奇数行样式设定DataGridView1.AlternatingRowsDefaultCellStyle.BackColor = Color.GreenYellow行,列表头部的样式设定DataGridView1.ColumnHeadersDefaultCellStyle.BackColor = Color.IvoryDataGridView1.RowHeadersDefaultCellStyle.BackColor = Color.Lime样式的优先顺序 一般单元格的样式优先顺位1. DataGridViewCell.Style 2. DataGridViewRow.DefaultCellStyle 3. DataGridView.AlternatingRowsDefaultCellStyle 4. DataGridView.RowsDefaultCellStyle 5. DataGridViewColumn.DefaultCellStyle 6. DataGridView.DefaultCellStyle 表头部的样式优先顺位1. DataGridViewCell.Style 2. DataGridView.RowHeadersDefaultCellStyle 3. DataGridView.ColumnHeadersDefaultCellStyle 4. DataGridView.DefaultCellStyle 下例说明DataGridView1.Columns(0).DefaultCellStyle.BackColor = Color.AquaDataGridView1.RowsDefaultCellStyle.BackColor = Color.YellowDataGridView1.AlternatingRowsDefaultCellStyle.BackColor = Color.GreenYellowDataGridView1.Rows(2).DefaultCellStyle.BackColor = Color.PinkConsole.WriteLine(DataGridView1.Columns(0).DefaultCellStyle.BackColor)Console.WriteLine(DataGridView1.Columns(0).InheritedStyle.BackColor)Console.WriteLine(DataGridView1.Rows(0).DefaultCellStyle.BackColor)Console.WriteLine(DataGridView1.Rows(0).InheritedStyle.BackColor)Console.WriteLine(DataGridView1.Rows(1).DefaultCellStyle.BackColor)Co
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- BIM技术项目实施详细方案
- 中职学前教育基础知识重点题库汇编
- 项目风险管理方案与保障措施
- 汉语拼音教学标准与示范
- 2026年桥梁施工中材料风险管理的实例
- 2026年工程造价的法律法规解读
- 人工智能模型透明度与信任度提升研究
- 低频脉冲治疗仪
- 不同天线技术性能比较分析报告
- 门店促销活动方案设计与效果评估
- 电工职业道德课件教学
- 周杰伦介绍课件
- 学堂在线 雨课堂 学堂云 生活英语听说 期末复习题答案
- T/CCT 002-2019煤化工副产工业氯化钠
- 项目可行性研究报告的风险管理计划和应对措施
- TCAGHP031-2018地质灾害危险性评估及咨询评估预算标准(试行)
- 砂石运输施工方案
- 华师大版八年级上册初二数学(基础版)(全册知识点考点梳理、重点题型分类巩固练习)(家教、补习、复习用)
- 医院如何规范服务态度
- 输液空气的栓塞及预防
- 移动公司客户经理述职报告
评论
0/150
提交评论