DataGridView控件用法合集(一)
近期将DataGridView常用的一些用法做了一个整理。为防止页面过长,现分批贴出来,此为第一部分。
1. DataGridView当前的单元格属性取得、变更
2. DataGridView编辑属性
3. DataGridView最下面一列新追加行非表示
4. DataGridView判断当前选中行是否为新追加的行
5. DataGridView删除行可否设定
6. DataGridView行列不表示和删除
1.当前的单元格属性取得、变更 [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 = True 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.判断当前选中行是否为新追加的行 [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); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |