• DataGridView控件用法合集(一)(转载)


    转载自:http://blog.sina.com.cn/s/blog_59181ec70100cel4.html~type=v5_one&label=rela_prevarticle

    1. DataGridView当前的单元格属性取得、变更
    2. DataGridView编辑属性
    3. DataGridView最下面一列新追加行非表示
    4. DataGridView判断当前选中行是否为新追加的行
    5. DataGridView删除行可否设定
    6. DataGridView行列不表示和删除

    1.DataGridView当前的单元格属性取得、变更

    [VB.NET]
    '現在のセルの値を表示
    Console.WriteLine(DataGridView1.CurrentCell.Value)
    '現在のセルの列インデックスを表示
    Console.WriteLine(DataGridView1.CurrentCell.ColumnIndex)
    '現在のセルの行インデックスを表示
    Console.WriteLine(DataGridView1.CurrentCell.RowIndex)
    '(0, 0)を現在のセルにする
    DataGridView1.CurrentCell = DataGridView1(0, 0)
    [C#]
    //現在のセルの値を表示
    Console.WriteLine(DataGridView1.CurrentCell.Value);
    //現在のセルの列インデックスを表示
    Console.WriteLine(DataGridView1.CurrentCell.ColumnIndex);
    //現在のセルの行インデックスを表示
    Console.WriteLine(DataGridView1.CurrentCell.RowIndex);
    //(0, 0)を現在のセルにする
    DataGridView1.CurrentCell = DataGridView1[0, 0];

     2.DataGridView编辑属性

    全部单元格编辑属性

    [VB.NET]
    'DataGridView1のセルを読み取り専用にする
    DataGridView1.ReadOnly = True
    [C#]
    //DataGridView1のセルを読み取り専用にする
    DataGridView1.ReadOnly = true;

    指定行列单元格编辑属性 

    [VB.NET]
    'DataGridView1の2番目の列を読み取り専用にする
    DataGridView1.Columns(1).ReadOnly = True
    'DataGridView1の3番目の行を読み取り専用にする
    DataGridView1.Rows(2).ReadOnly = True
    'DataGridView1の(0, 0)のセルを読み取り専用にする
    DataGridView1(0, 0).ReadOnly = True
    [C#]
    //DataGridView1の2番目の列を読み取り専用にする
    DataGridView1.Columns[1].ReadOnly = true;
    //DataGridView1の3番目の行を読み取り専用にする
    DataGridView1.Rows[2].ReadOnly = true;
    //DataGridView1の(0, 0)のセルを読み取り専用にする
    DataGridView1[0, 0].ReadOnly = true;

     根据条件判断单元格的编辑属性

    下例中column2的值是True的时候,Column1设为可编辑

    [VB.NET]
    'CellBeginEditイベントハンドラ
    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 = TrueM
    End If
    End Sub
    [C#]
    //CellBeginEditイベントハンド
    private void DataGridView1_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
    {
    DataGridView dgv = (DataGridView)sender;
    //編集できるか判断する
    if (dgv.Columns[e.ColumnIndex].Name == "Column1" && !(bool)dgv["Column2", e.RowIndex].Value)
    {
    //編集できないようにする
    e.Cancel = true;
    }
    }

    3.DataGridView最下面一列新追加行非表示

    [VB.NET]
    'DataGridView1にユーザーが新しい行を追加できないようにする
    DataGridView1.AllowUserToAddRows = False
    [C#]
    //DataGridView1にユーザーが新しい行を追加できないようにする
    DataGridView1.AllowUserToAddRows = false;

    4.DataGridView判断当前选中行是否为新追加的行

    [VB.NET]
    If DataGridView1.CurrentRow.IsNewRow Then
    Console.WriteLine("現在のセルがある行は、新しい行です。")
    Else
    Console.WriteLine("現在のセルがある行は、新しい行ではありません。")
    End If
    [C#]
    if (DataGridView1.CurrentRow.IsNewRow)
    Console.WriteLine("現在のセルがある行は、新しい行です。");
    else
    Console.WriteLine("現在のセルがある行は、新しい行ではありません。");

    5.DataGridView删除行可否设定

    [VB.NET]
    'DataGridView1の行をユーザーが削除できないようにする
    DataGridView1.AllowUserToDeleteRows = False
    [C#]
    //DataGridView1の行をユーザーが削除できないようにする
    DataGridView1.AllowUserToDeleteRows = false;

    根据条件判断当前行是否要删除

    [VB.NET]
    'DataGridView1のUserDeletingRowイベントハンドラ
    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 If
    End Sub
    [C#]
    //DataGridView1のUserDeletingRowイベントハンドラ
    private void DataGridView1_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e)
    {
    //削除するかユーザーに確認する
    if (MessageBox.Show("この列を削除しますか?", "削除の確認", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) != DialogResult.OK)
    {
    e.Cancel = true;
    }
    }

    6.DataGridView行列不表示和删除

    行列不表示

    [VB.NET]
    'DataGridView1のはじめの列を非表示にする
    DataGridView1.Columns(0).Visible = False
    'DataGridView1のはじめの行を非表示にする
    DataGridView1.Rows(0).Visible = False
    [C#]
    //DataGridView1のはじめの列を非表示にする
    DataGridView1.Columns[0].Visible = false;
    //DataGridView1のはじめの行を非表示にする
    DataGridView1.Rows[0].Visible = false;

    行列表头部分不表示

    [VB.NET]
    '列ヘッダーを非表示にする
    DataGridView1.ColumnHeadersVisible = False
    '行ヘッダーを非表示にする
    DataGridView1.RowHeadersVisible = False
    [C#]
    //列ヘッダーを非表示にする
    DataGridView1.ColumnHeadersVisible = false;
    //行ヘッダーを非表示にする
    DataGridView1.RowHeadersVisible = false;

    指定行列删除

    [VB.NET]
    '"Column1"を削除する
    DataGridView1.Columns.Remove("Column1")
    'はじめの列を削除する
    DataGridView1.Columns.RemoveAt(0)
    'はじめの行を削除する
    DataGridView1.Rows.RemoveAt(0)
    [C#]
    //"Column1"を削除する
    DataGridView1.Columns.Remove("Column1");
    //はじめの列を削除する
    DataGridView1.Columns.RemoveAt(0);
    //はじめの行を削除する
    DataGridView1.Rows.RemoveAt(0);

    选择的行列删除(多行列)

    [VB.NET]
    'DataGridView1で選択されているすべての行を削除する
    Dim r As DataGridViewRow
    For Each r In DataGridView1.SelectedRows
    If Not r.IsNewRow Then
    DataGridView1.Rows.Remove(r)
    End If
    Next r
    [C#]
    //DataGridView1で選択されているすべての行を削除する
    foreach (DataGridViewRow r in DataGridView1.SelectedRows)
    {
    if (!r.IsNewRow)
    {
    DataGridView1.Rows.Remove(r);
    }
    }
  • 相关阅读:
    所以怎样实现列表点击整行上下移动?
    高德标签label样式
    ubuntu上安装ldap以及phpLdapAdmin步骤(php连接管理ldap简化版实现)
    ubuntu 16.04下快速安装PHP环境
    open LDAP以及phpLDAPadmin入门ubuntu 16.04
    “微信之父”张小龙:微信背后的产品观
    所以Ubuntu如何清理不必要的文件?
    百度无人驾驶Apollo的dreamview的demo运行
    新手用的git配置命令
    php+redis实现消息队列
  • 原文地址:https://www.cnblogs.com/MFxxk/p/1656436.html
Copyright © 2020-2023  润新知