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表头部单元格文字列设定
更改列Header表示文字列

[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();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值