0
datagridview
にはcheckbox
の列があり、delete
の行にchecked
とdelete
というボタンを付けたいと思います。ただし、チェックされたrow
の代わりに、unchecked
であるrows
が削除されました。 私はレコードを削除するために使用されている各列の値を格納するためのリストオブジェクト(srv_NameList
)、ボタンがクリックされると削除されますそのリストに保存する任意の値を得た:チェックボックスがチェックされている場合、DataGridビューでレコードを削除する方法
private void dataGrid_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
if (dataGrid.Columns[e.ColumnIndex].Name.Equals("Select"))
{
if (dataGrid.Rows[e.RowIndex].Selected == true)
{
string srvName = dataGrid.Rows[e.RowIndex].Cells["ServiceName"].Value.ToString();
srv_NameList.Add(srvName);
}
if (dataGrid.Rows[e.RowIndex].Selected == false)
{
string srvName_del = dataGrid.Rows[e.RowIndex].Cells["ServiceName"].Value.ToString();
if (srv_NameList.Contains(srvName_del))
{
srv_NameList.Remove(srvName_del);
}
}
}
}
できる人親切何が間違っているのか教えてください。
DataGridViewの編集が終了していないとどこかのコードでは、あなたが行を削除しようとすると、この種の問題は通常起こります。行を削除する前に、DataGridViewの編集が完了していることを確認してください。 DataGridView.EndEdit()を強制的に呼び出すことができます。 – Bahrom