DataGridView1.AllowUserToOrderColumns = True
但是如果列冻结的情况下,冻结的部分不能变更到非冻结的部分。 变更后列位置取得 [VB.NET]
'列\の現在の位置を取得する
Console.WriteLine(DataGridView1.Columns(\'列\を先頭に移動する
DataGridView1.Columns(\ 11. DataGridView行复数选择 复数行选择不可 [VB.NET]
'DataGridView1でセル、行、列が複数選択されないようにする DataGridView1.MultiSelect = False 单元格选择的时候默认为选择整行 [VB.NET]
'セルを選択すると行全体が選択されるようにする
DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect 12. DataGridView选择的行、列、单元格取得 [VB.NET]
'選択されているセルを表示
Console.WriteLine(\選択されているセル\
For Each c As DataGridViewCell In DataGridView1.SelectedCells Console.WriteLine(\{1}\c.ColumnIndex, c.RowIndex) Next c
'選択されている行を表示
Console.WriteLine(\選択されている行\
For Each r As DataGridViewRow In DataGridView1.SelectedRows Console.WriteLine(r.Index) Next r
'選択されている列を表示
Console.WriteLine(\選択されている列\
For Each c As DataGridViewColumn In DataGridView1.SelectedColumns Console.WriteLine(c.Index) Next c
指定行、列、单元格取得 [VB.NET]
'(0, 0)のセルを選択する
DataGridView1(0, 0).Selected = True 'インデックス1の行を選択する
DataGridView1.Rows(1).Selected = True 'インデックス2の列を選択する
DataGridView1.Columns(2).Selected = True DataGridView控件用法合集(三)
13. DataGridView指定单元格是否表示 14. DataGridView表头部单元格取得
15. DataGridView表头部单元格文字列设定 16. DataGridView选择的部分拷贝至剪贴板 17.DataGridView粘贴
18. DataGridView单元格上ToolTip表示设定(鼠标移动到相应单元格上时,弹出说明信息)
13. DataGridView指定单元格是否表示 [VB.NET]
If Not DataGridView1(0, 0).Displayed AndAlso _ DataGridView1(0, 0).Visible Then DataGridView1.CurrentCell = DataGridView1(0, 0) End If
14. DataGridView表头部单元格取得 [VB.NET]
'DataGridView1のはじめの列のテキストを変更する
DataGridView1.Columns(0).HeaderCell.Value = \はじめの列\'DataGridView1のはじめの行のテキストを変更する DataGridView1.Rows(0).HeaderCell.Value = \はじめの行\'DataGridView1の左上隅のセルのテキストを変更する DataGridView1.TopLeftHeaderCell.Value = \左上\15. DataGridView表头部单元格文字列设定 更改列Header表示文字列 [VB.NET]
'DataGridView1のはじめの列のテキストを変更する DataGridView1.Columns(0).HeaderText = \はじめの列\更改行Header表示文字列 [VB.NET]
'DataGridView1の行ヘッダーに行番号を表示する Dim i As Integer
For i = 0 To DataGridView1.Rows.Count - 1 DataGridView1.Rows(i).HeaderCell.Value = i.ToString() Next i
'行ヘッダーの幅を自動調節する
DataGridView1.AutoResizeRowHeadersWidth( _
DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders) 最左上Header单元格文字列 [VB.NET]
'左上隅のヘッダーセルに\と表示する DataGridView1.TopLeftHeaderCell.Value = \ 16. DataGridView选择的部分拷贝至剪贴板 拷贝模式设定 [VB.NET]
'ヘッダーをコピーしないようにする DataGridView1.ClipboardCopyMode = _
DataGridViewClipboardCopyMode.EnableWithoutHeaderText 选中部分拷贝 [VB.NET]
'選択されたセルをクリップボードにコピーする
Clipboard.SetDataObject(DataGridView1.GetClipboardContent()) 17.DataGridView粘贴 [VB.NET]
'現在のセルのある行から下にペーストする If DataGridView1.CurrentCell Is Nothing Then Return End If
Dim insertRowIndex As Integer = DataGridView1.CurrentCell.RowIndex
'クリップボードの内容を取得して、行で分ける Dim pasteText As String = Clipboard.GetText() If String.IsNullOrEmpty(pasteText) Then Return End If
pasteText = 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 = True For 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 If Next line
18. DataGridView单元格上ToolTip表示设定(鼠标移动到相应单元格上时,弹出说明信息) [VB.NET]
'セルに表示するToolTipを設定する
DataGridView1(0, 0).ToolTipText = \このセルは変更できません\'列ヘッダーに表示するToolTipを設定する
DataGridView1.Columns(0).ToolTipText = \この列には数字を入力できます\'行ヘッダーに表示するToolTipを設定する
DataGridView1.Rows(0).HeaderCell.ToolTipText = \この行のセルは変更できません\
CellToolTipTextNeeded事件,在多个单元格使用相同的ToolTips的时候,可以用该事件,下例为显示当前单元格的行号和列号 [VB.NET]
'CellToolTipTextNeededイベントハンドラ
Private Sub DataGridView1_CellToolTipTextNeeded(ByVal sender As Object, _ ByVal e As DataGridViewCellToolTipTextNeededEventArgs) _ Handles DataGridView1.CellToolTipTextNeeded
e.ToolTipText = e.ColumnIndex.ToString() + \ End Sub
DataGridView控件用法合集(四)
19. DataGridView中的ContextMenuStrip属性 20. DataGridView指定滚动框位置 21. DataGridView手动追加列
22. DataGridView全体分界线样式设置
23. DataGridView根据单元格属性更改显示内容 24. DataGridView新追加行的行高样式设置る 25. DataGridView新追加行单元格默认值设置
19. DataGridView中的ContextMenuStrip属性 [VB.NET]
'DataGridViewのContextMenuStripを設定する
DataGridView1.ContextMenuStrip = Me.ContextMenuStrip1 '列のContextMenuStripを設定する
DataGridView1.Columns(0).ContextMenuStrip = Me.ContextMenuStrip2 '列ヘッダーのContextMenuStripを設定する
DataGridView1.Columns(0).HeaderCell.ContextMenuStrip = Me.ContextMenuStrip2 '行のContextMenuStripを設定する
DataGridView1.Rows(0).ContextMenuStrip = Me.ContextMenuStrip3 'セルのContextMenuStripを設定する
DataGridView1(1, 0).ContextMenuStrip = Me.ContextMenuStrip4
也可以用CellContextMenuStripNeeded、RowContextMenuStripNeeded属性进行定义 [VB.NET]
'CellContextMenuStripNeededイベントハンドラ
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
'列ヘッダーに表示するContextMenuStripを設定する e.ContextMenuStrip = Me.ContextMenuStrip1 ElseIf e.ColumnIndex < 0 Then
'行ヘッダーに表示するContextMenuStripを設定する e.ContextMenuStrip = Me.ContextMenuStrip2
ElseIf TypeOf (dgv(e.ColumnIndex, e.RowIndex).Value) Is Integer Then 'セルが整数型のときに表示するContextMenuStripを変更する e.ContextMenuStrip = Me.ContextMenuStrip3 End If End Sub
20. DataGridView指定滚动框位置 [VB.NET]
'先頭の行までスクロールする
DataGridView1.FirstDisplayedScrollingRowIndex = 0 '先頭の列までスクロールする
DataGridView1.FirstDisplayedScrollingColumnIndex = 0 21. DataGridView手动追加列 [VB.NET]
'列が自動的に作成されないようにする DataGridView1.AutoGenerateColumns = False
'データソースを設定する
DataGridView1.DataSource = BindingSource1 'DataGridViewTextBoxColumn列を作成する
Dim textColumn As New DataGridViewTextBoxColumn() 'データソースの\をバインドする textColumn.DataPropertyName = \ '名前とヘッダーを設定する textColumn.Name = \
textColumn.HeaderText = \ '列を追加する
DataGridView1.Columns.Add(textColumn) 22. DataGridView全体分界线样式设置 [VB.NET]
'DataGridViewの境界線を3Dにする
DataGridView1.BorderStyle = BorderStyle.Fixed3D 单元格上下左右分界线样式设置 [VB.NET]
'セルの上と左を二重線のくぼんだ境界線にし、 '下と右を一重線のくぼんだ境界線にする
DataGridView1.AdvancedCellBorderStyle.Top = DataGridViewAdvancedCellBorderStyle.InsetDouble DataGridView1.AdvancedCellBorderStyle.Right = DataGridViewAdvancedCellBorderStyle.Inset DataGridView1.AdvancedCellBorderStyle.Bottom = DataGridViewAdvancedCellBorderStyle.Inset DataGridView1.AdvancedCellBorderStyle.Left = DataGridViewAdvancedCellBorderStyle.InsetDouble 23. DataGridView根据单元格属性更改显示内容 如下例,当该列是字符串时,自动转换文字大小写 [VB.NET]
'CellFormattingイベントハンドラ
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 = \AndAlso _ TypeOf e.Value Is String Then '大文字にして表示する Dim str As String = e.Value.ToString() e.Value = str.ToUpper()
'フォーマットの必要がないことを知らせる e.FormattingApplied = True End If End Sub
24. DataGridView新追加行的行高样式设置 行高设置 [VB.NET]
'行テンプレートの高さを設定する
DataGridView1.RowTemplate.Height = 50 '行の最低の高さを設定する
DataGridView1.RowTemplate.MinimumHeight = 50 样式设置 [VB.NET]