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);
}
}
原文地址:https://www.cnblogs.com/MFxxk/p/1656436.html