DataGridView控件用法合集(三)
DataGridView控件用法合集(三)
整理 By Tyouvivi 整理日 2007年06月12日 第三部分
近期将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 [C#] if (!DataGridView1[0,0].Displayed && DataGridView1[0,0].Visible) { DataGridView1.CurrentCell = DataGridView1[0,0]; } 14. DataGridView表头部单元格取得 [VB.NET] 'DataGridView1のはじめの列のテキストを変更する DataGridView1.Columns(0).HeaderCell.Value = "はじめの列" 'DataGridView1のはじめの行のテキストを変更する DataGridView1.Rows(0).HeaderCell.Value = "はじめの行" 'DataGridView1の左上隅のセルのテキストを変更する DataGridView1.TopLeftHeaderCell.Value = "左上" [C#] //DataGridView1のはじめの列のテキストを変更する DataGridView1.Columns[0].HeaderCell.Value = "はじめの列"; //DataGridView1のはじめの行のテキストを変更する DataGridView1.Rows[0].HeaderCell.Value = "はじめの行"; //DataGridView1の左上隅のセルのテキストを変更する DataGridView1.TopLeftHeaderCell.Value = "左上"; 15. DataGridView表头部单元格文字列设定 [VB.NET] 'DataGridView1のはじめの列のテキストを変更する DataGridView1.Columns(0).HeaderText = "はじめの列" [C#] //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) [C#] //DataGridView1の行ヘッダーに行番号を表示する for (int i = 0; i < DataGridView1.Rows.Count; i++) { DataGridView1.Rows[i].HeaderCell.Value = i.ToString(); } //行ヘッダーの幅を自動調節する DataGridView1.AutoResizeRowHeadersWidth( DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders); 最左上Header单元格文字列 [VB.NET] '左上隅のヘッダーセルに"/"と表示する DataGridView1.TopLeftHeaderCell.Value = "/" [C#] //左上隅のヘッダーセルに"/"と表示する DataGridView1.TopLeftHeaderCell.Value = "/"; 16. DataGridView选择的部分拷贝至剪贴板 [VB.NET] 'ヘッダーをコピーしないようにする DataGridView1.ClipboardCopyMode = _ DataGridViewClipboardCopyMode.EnableWithoutHeaderText [C#] //ヘッダーをコピーしないようにする DataGridView1.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText; 选中部分拷贝 [VB.NET] '選択されたセルをクリップボードにコピーする Clipboard.SetDataObject(DataGridView1.GetClipboardContent()) [C#] //選択されたセルをクリップボードにコピーする 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 [C#] //現在のセルのある行から下にペーストする if (DataGridView1.CurrentCell == null) return; int insertRowIndex = DataGridView1.CurrentCell.RowIndex; //クリップボードの内容を取得して、行で分ける string pasteText = Clipboard.GetText(); if (string.IsNullOrEmpty(pasteText)) return; pasteText = pasteText.Replace("/r/n","/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.Rows[insertRowIndex]; //ヘッダーを設定 row.HeaderCell.Value = vals[0]; //各セルの値を設定 for (int i = 0; i < row.Cells.Count; i++) { row.Cells[i].Value = vals[i + 1]; } //次の行へ insertRowIndex++; } 18. DataGridView单元格上ToolTip表示设定(鼠标移动到相应单元格上时,弹出说明信息) [VB.NET] 'セルに表示するToolTipを設定する DataGridView1(0,0).ToolTipText = "このセルは変更できません" '列ヘッダーに表示するToolTipを設定する DataGridView1.Columns(0).ToolTipText = "この列には数字を入力できます" '行ヘッダーに表示するToolTipを設定する DataGridView1.Rows(0).HeaderCell.ToolTipText = "この行のセルは変更できません" [C#] //セルに表示する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() + "," + e.RowIndex.ToString() End Sub [C#] //CellToolTipTextNeededイベントハンドラ private void DataGridView1_CellToolTipTextNeeded(object sender, DataGridViewCellToolTipTextNeededEventArgs e) { e.ToolTipText = e.ColumnIndex.ToString() + "," + e.RowIndex.ToString(); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |