DataGridView使用说明.doc_第1页
DataGridView使用说明.doc_第2页
DataGridView使用说明.doc_第3页
DataGridView使用说明.doc_第4页
DataGridView使用说明.doc_第5页
已阅读5页,还剩173页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

DataGridView控件用法合集1.当前的单元格属性取得、变更VB.NETConsole.WriteLine(DataGridView1.CurrentCell.Value)Console.WriteLine(DataGridView1.CurrentCell.ColumnIndex)Console.WriteLine(DataGridView1.CurrentCell.RowIndex)DataGridView1.CurrentCell = DataGridView1(0, 0)C#Console.WriteLine(DataGridView1.CurrentCell.Value);Console.WriteLine(DataGridView1.CurrentCell.ColumnIndex);Console.WriteLine(DataGridView1.CurrentCell.RowIndex); DataGridView1.CurrentCell = DataGridView10, 0;2.DataGridView编辑属性全部单元格编辑属性VB.NETDataGridView1.ReadOnly = TrueC#DataGridView1.ReadOnly = true;指定行列单元格编辑属性VB.NETDataGridView1.Columns(1).ReadOnly = TrueDataGridView1.Rows(2).ReadOnly = TrueDataGridView1(0, 0).ReadOnly = TrueC#DataGridView1.Columns1.ReadOnly = true;DataGridView1.Rows2.ReadOnly = true;DataGridView10, 0.ReadOnly = true;根据条件判断单元格的编辑属性下例中column2的值是True的时候,Column1设为可编辑 VB.NETPrivate 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 SubC#private void DataGridView1_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e) DataGridView dgv = (DataGridView)sender; if (dgv.Columnse.ColumnIndex.Name = Column1 & !(bool)dgvColumn2, e.RowIndex.Value) e.Cancel = true; 3.DataGridView最下面一列新追加行非表示VB.NETDataGridView1新行追加DataGridView1.AllowUserToAddRows = FalseC#/DataGridView1新行追加DataGridView1.AllowUserToAddRows = false;4.判断当前选中行是否为新追加的行VB.NETIf DataGridView1.CurrentRow.IsNewRow Then Console.WriteLine(現在行、新行。)Else Console.WriteLine(現在行、新行。)End IfC#if (DataGridView1.CurrentRow.IsNewRow) Console.WriteLine(現在行、新行。);else Console.WriteLine(現在行、新行。);5. DataGridView删除行可否设定VB.NETDataGridView1行削除DataGridView1.AllowUserToDeleteRows = FalseC#/DataGridView1行削除DataGridView1.AllowUserToDeleteRows = false;根据条件判断当前行是否要删除VB.NETDataGridView1UserDeletingRowPrivate 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 SubC#/DataGridView1UserDeletingRowprivate void DataGridView1_UserDeletingRow( object sender, DataGridViewRowCancelEventArgs e) /削除確認 if (MessageBox.Show(列削除?, 削除確認, MessageBoxButtons.OKCancel, MessageBoxIcon.Question) != DialogResult.OK) e.Cancel = true; 6. DataGridView行列不表示和删除行列不表示VB.NETDataGridView1.Columns(0).Visible = FalseDataGridView1.Rows(0).Visible = FalseC#DataGridView1.Columns0.Visible = false;DataGridView1.Rows0.Visible = false;行列表头部分不表示VB.NETDataGridView1.ColumnHeadersVisible = FalseDataGridView1.RowHeadersVisible = FalseC#DataGridView1.ColumnHeadersVisible = false;DataGridView1.RowHeadersVisible = false;指定行列删除VB.NETDataGridView1.Columns.Remove(Column1)DataGridView1.Columns.RemoveAt(0)DataGridView1.Rows.RemoveAt(0)C#DataGridView1.Columns.Remove(Column1);DataGridView1.Columns.RemoveAt(0);DataGridView1.Rows.RemoveAt(0);选择的行列删除(多行列)VB.NETDim r As DataGridViewRowFor Each r In DataGridView1.SelectedRows If Not r.IsNewRow Then DataGridView1.Rows.Remove(r) End IfNext rC#foreach (DataGridViewRow r in DataGridView1.SelectedRows) if (!r.IsNewRow) DataGridView1.Rows.Remove(r); 7. DataGridView行列宽度高度设置为不能编辑VB.NETDataGridView1.AllowUserToResizeColumns = FalseDataGridView1.AllowUserToResizeRows = FalseC#DataGridView1.AllowUserToResizeColumns = false;DataGridView1.AllowUserToResizeRows = false;指定行列宽度高度设置为不能编辑VB.NETDataGridView1.Columns(0).Resizable = DataGridViewTriState.FalseDataGridView1.Rows(0).Resizable = DataGridViewTriState.FalseC#DataGridView1.Columns0.Resizable = DataGridViewTriState.False;DataGridView1.Rows0.Resizable = DataGridViewTriState.False;列幅行高最小值设定VB.NETDataGridView1.Columns(0).MinimumWidth = 100DataGridView1.Rows(0).MinimumHeight = 50C#DataGridView1.Columns0.MinimumWidth = 100;DataGridView1.Rows0.MinimumHeight = 50;行列表头部分行高列幅设置为不能编辑VB.NET列高変更DataGridView1.ColumnHeadersHeightSizeMode = _ DataGridViewColumnHeadersHeightSizeMode.DisableResizing行幅変更DataGridView1.RowHeadersWidthSizeMode = _ DataGridViewRowHeadersWidthSizeMode.EnableResizingC#/列高変更DataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;/行幅変更DataGridView1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.EnableResizing;8. DataGridView行高列幅自动调整VB.NETDataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCellsDataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCellsC#DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;DataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;表头部分行高列幅自动调整VB.NETDataGridView1.ColumnHeadersHeightSizeMode = _ DataGridViewColumnHeadersHeightSizeMode.AutoSizeDataGridView1.RowHeadersWidthSizeMode = _ DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeadersC#DataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;DataGridView1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders;指定列自动调整VB.NETDataGridView1.Columns(0).AutoSizeMode = _ DataGridViewAutoSizeColumnMode.DisplayedCellsC#DataGridView1.Columns0.AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;9. DataGridView指定行列冻结列冻结(当前列以及左侧做所有列)VB.NETDataGridView1.Columns(1).Frozen = TrueC#DataGridView1.Columns1.Frozen = true;行冻结(当前行以及上部所有行)VB.NETDataGridView1.Rows(2).Frozen = TrueC#DataGridView1.Rows2.Frozen = true;指定单元格冻结(单元格所在行上部分所有行,列左侧所有列)VB.NETDataGridView1(0, 0). Frozen = TrueC#DataGridView10, 0. Frozen = true;10. DataGridView列顺序变更可否设定VB.NETDataGridView1.AllowUserToOrderColumns = TrueC#DataGridView1.AllowUserToOrderColumns = true;但是如果列冻结的情况下,冻结的部分不能变更到非冻结的部分。变更后列位置取得VB.NETConsole.WriteLine(DataGridView1.Columns(Column1).DisplayIndex)DataGridView1.Columns(Column1).DisplayIndex = 0C#Console.WriteLine(DataGridView1.ColumnsColumn1.DisplayIndex);DataGridView1.ColumnsColumn1.DisplayIndex = 0;11. DataGridView行复数选择复数行选择不可VB.NETDataGridView1.MultiSelect = FalseC#DataGridView1.MultiSelect = false;单元格选择的时候默认为选择整行VB.NETDataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelectC#DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;12. DataGridView选择的行、列、单元格取得VB.NETConsole.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 cC#Console.WriteLine(選択);foreach (DataGridViewCell c in DataGridView1.SelectedCells) Console.WriteLine(0, 1, c.ColumnIndex, c.RowIndex);Console.WriteLine(選択行);foreach (DataGridViewRow r in DataGridView1.SelectedRows) Console.WriteLine(r.Index);Console.WriteLine(選択列);foreach (DataGridViewColumn c in DataGridView1.SelectedColumns) Console.WriteLine(c.Index);指定行、列、单元格取得VB.NETDataGridView1(0, 0).Selected = TrueDataGridView1.Rows(1).Selected = TrueDataGridView1.Columns(2).Selected = TrueC#DataGridView10, 0.Selected = true;DataGridView1.Rows1.Selected = true;DataGridView1.Columns2.Selected = true;13. DataGridView指定单元格是否表示VB.NETIf Not DataGridView1(0, 0).Displayed AndAlso _ DataGridView1(0, 0).Visible Then DataGridView1.CurrentCell = DataGridView1(0, 0)End IfC#if (!DataGridView10, 0.Displayed & DataGridView10, 0.Visible) DataGridView1.CurrentCell = DataGridView10, 0;14. DataGridView表头部单元格取得VB.NETDataGridView1.Columns(0).HeaderCell.Value = 列DataGridView1.Rows(0).HeaderCell.Value = 行DataGridView1.TopLeftHeaderCell.Value = 左上C#DataGridView1.Columns0.HeaderCell.Value = 列;DataGridView1.Rows0.HeaderCell.Value = 行;DataGridView1.TopLeftHeaderCell.Value = 左上;15. DataGridView表头部单元格文字列设定VB.NETDataGridView1.Columns(0).HeaderText = 姓名列C#DataGridView1.Columns0.HeaderText = 姓名列;更改行Header表示文字列VB.NETDim i As IntegerFor i = 0 To DataGridView1.Rows.Count - 1 DataGridView1.Rows(i).HeaderCell.Value = i.ToString()Next iDataGridView1.AutoResizeRowHeadersWidth( _ DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders)C#for (int i = 0; i DataGridView1.Rows.Count; i+) DataGridView1.Rowsi.HeaderCell.Value = i.ToString();DataGridView1.AutoResizeRowHeadersWidth( DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders);表头部文字居中C#DataGridView1.ColumnHeadersDefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;最左上Header单元格文字列VB.NETDataGridView1.TopLeftHeaderCell.Value = /C#DataGridView1.TopLeftHeaderCell.Value = /;16. DataGridView选择的部分拷贝至剪贴板拷贝模式设定VB.NETDataGridView1.ClipboardCopyMode = _ DataGridViewClipboardCopyMode.EnableWithoutHeaderTextC#DataGridView1.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText;选中部分拷贝VB.NETClipboard.SetDataObject(DataGridView1.GetClipboardContent()C#Clipboard.SetDataObject(DataGridView1.GetClipboardContent();17.DataGridView粘贴VB.NETIf 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 lineC#if (DataGridView1.CurrentCell = null) return;int insertRowIndex = DataGridView1.CurrentCell.RowIndex;string pasteText = Clipboard.GetText();if (string.IsNullOrEmpty(pasteText) return;pasteText = pasteText.Replace(rn, n);pasteText = pasteText.Replace(r, n);pasteText.TrimEnd(new char n );string lines = pasteText.Split(n);bool isHeader = true;foreach (string line in lines) if (isHeader) isHeader = false; continue; string vals = line.Split(t); if (vals.Length - 1 != DataGridView1.ColumnCount) throw new ApplicationException(列数違。); DataGridViewRow row = DataGridView1.RowsinsertRowIndex; row.HeaderCell.Value = vals0; for (int i = 0; i row.Cells.Count; i+) row.Cellsi.Value = valsi + 1; insertRowIndex+;18. DataGridView单元格上ToolTip表示设定(鼠标移动到相应单元格上时,弹出说明信息)VB.NETDataGridView1(0, 0).ToolTipText = 変更DataGridView1.Columns(0).ToolTipText = 列数字入力DataGridView1.Rows(0).HeaderCell.ToolTipText = 行変更C#DataGridView10, 0.ToolTipText = 変更;DataGridView1.Columns0.ToolTipText = 列数字入力;DataGridView1.Rows0.HeaderCell.ToolTipText = 行変更;CellToolTipTextNeeded事件,在多个单元格使用相同的ToolTips的时候,可以用该事件,下例为显示当前单元格的行号和列号VB.NETCellToolTipTextNeededPrivate Sub DataGridView1_CellToolTipTextNeeded(ByVal sender As Object, _ ByVal e As DataGridViewCellToolTipTextNeededEventArgs) _ Handles DataGridView1.CellToolTipTextNeeded e.ToolTipText = e.ColumnIndex.ToString() + , + e.RowIndex.ToString()End SubC#/CellToolTipTextNeededprivate void DataGridView1_CellToolTipTextNeeded(object sender, DataGridViewCellToolTipTextNeededEventArgs e) e.ToolTipText = e.ColumnIndex.ToString() + , + e.RowIndex.ToString();19. DataGridView中的ContextMenuStrip属性VB.NETDataGridView1.ContextMenuStrip = Me.ContextMenuStrip1DataGridView1.Columns(0).ContextMenuStrip = Me.ContextMenuStrip2DataGridView1.Columns(0).HeaderCell.ContextMenuStrip = Me.ContextMenuStrip2DataGridView1.Rows(0).ContextMenuStrip = Me.ContextMenuStrip3DataGridView1(1, 0).ContextMenuStrip = Me.ContextMenuStrip4C#DataGridView1.ContextMenuStrip = this.ContextMenuStrip1;DataGridView1.Columns0.ContextMenuStrip = this.ContextMenuStrip2;DataGridView1.Columns0.HeaderCell.ContextMenuStrip = this.ContextMenuStrip2;DataGridView1.Rows0.ContextMenuStrip = this.ContextMenuStrip3;DataGridView10, 1.ContextMenuStrip = this.ContextMenuStrip4;也可以用CellContextMenuStripNeeded、RowContextMenuStripNeeded属性进行定义VB.NETPrivate 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 SubC#private void DataGridView1_CellContextMenuStripNeeded(object sender, DataGridViewCellContextMenuStripNeededEventArgs e) DataGridView dgv = (DataGridView)sender; if (e.RowIndex 0) e.ContextMenuStrip = this.ContextMenuStrip1; else if (e.ColumnIndex 0) e.ContextMenuStrip = this.ContextMenuStrip2; else if (dgve.ColumnIndex, e.RowIndex.Value is int) e.ContextMenuStrip = this.ContextMenuStrip3; 20.指定DataGridView的滚动框位置VB.NETDataGridView1.FirstDisplayedScrollingRowIndex = 0DataGridView1.FirstDisplayedScrollingColumnIndex = 0C#DataGridView1.FirstDisplayedScrollingRowIndex = 0;DataGridView1.FirstDisplayedScrollingColumnIndex = 0;21. DataGridView手动追加列VB.NETDataGridView1.AutoGenerateColumns = FalseDataGridView1.DataSource = BindingSource1Dim textColumn As New DataGridViewTextBoxColumn()textColumn.DataPropertyName = Column1textColumn.Name = Column1DataGridView1.Columns.Add(textColumn)C#DataGridView1.AutoGenerateColumns = false;DataGridView1.DataSource = BindingSource1;DataGridViewTextBoxColumn textColumn = new DataGridViewTextBoxColumn();textColumn.DataPropertyName = Column1;textColumn.Name = Column1;textColumn.HeaderText = Column1;DataGridView1.Columns.Add(textColumn);22. DataGridView全体分界线样式设置VB.NETDataGridView1.BorderStyle = BorderStyle.Fixed3DC#DataGridView1.BorderStyle = BorderStyle.Fixed3D;单元格上下左右分界线样式设置VB.NETDataGridView1.AdvancedCellBorderStyle.Top = DataGridViewAdvancedCellBorderStyle.InsetDoubleDataGridView1.AdvancedCellBorderStyle.Right = DataGridViewAdvancedCellBorderStyle.InsetDataGridView1.AdvancedCellBorderStyle.Bottom = DataGridViewAdvancedCellBorderStyle.InsetDataGridView1.AdvancedCellBorderStyle.Left = DataGridViewAdvancedCellBorderStyle.InsetDoubleC#DataGridView1.AdvancedCellBorderStyle.Top = DataGridViewAdvancedCellBorderStyle.InsetDouble;DataGridView1.AdvancedCellBorderStyle.Right = DataGridViewAdvancedCellBorderStyle.Inset;DataGridView1.AdvancedCellBorderStyle.Bottom = DataGridViewAdvancedCellBorderStyle.Inset;DataGridView1.AdvancedCellBorderStyle.Left = DataGridViewAdvancedCellBorderStyle.InsetDouble;23.根据DataGridView单元格属性更改显示内容如下例,当该列是字符串时,自动转换文字大小写VB.NETPrivate 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 SubC#private void DataGridView1_CellFormatting(object sender, DataGridVie

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论