DataGridViewの行をユーザーが削除できないようにする注意:DataGridViewコントロールは、.NET Framework 2.0で新しく追加されました。 無条件でユーザーがすべての行を削除できないようにする通常はDataGridView内の列をDELETEキーで削除することができますが、DataGridViewコントロールのAllowUserToDeleteRowsプロパティをFalseとすることにより、ユーザーが行を削除することができなくなります。 [VB.NET] 'DataGridView1の行をユーザーが削除できないようにする DataGridView1.AllowUserToDeleteRows = False [C#] //DataGridView1の行をユーザーが削除できないようにする DataGridView1.AllowUserToDeleteRows = false; ただしこのようにしても、DataGridViewRowCollection.Removeメソッドなどで行を削除することはできます。 補足:上記のようなコードを書く方法以外に、Visual Studioのスマートタグで、「削除を有効にする」のチェックを外す方法があります。 補足:「DataGridの一番下の新しい行(*行)が表示されないようにする」で紹介しているような、DataView.AllowDeleteプロパティをFalseにする方法でもユーザーの行削除を禁止できます。 条件に応じてユーザーが行を削除できないようにするユーザーが行を削除しようとしたとき、DataGridView.UserDeletingRowイベントが発生します。ここで削除しても構わないか判断して、条件により削除をキャンセルすることができます。 列を削除する前にユーザーに確認する例を以下に示します。 [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; } } 注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。
|
|
Copyright 2002-2008 DOBON!. All rights reserved.
|