正在使用自定义DialogBox从DataGridView中删除行
本文关键字:DataGridView 删除行 DialogBox 自定义 | 更新日期: 2023-09-27 18:30:13
我所做的是row
上的用户rightclicks
。出现一个菜单,他们选择delete
选项。但没有确认对话框。如何使用我创建的自定义表单。其具有CCD_ 4。我的代码工作;
private void Delete_Click(object sender, EventArgs e)
{
if (this.dgvTable.SelectedRows.Count > 0)
{
dgvTable.Rows.RemoveAt(this.dgvTable.SelectedRows[0].Index);
}
//Call FrmDelete??
}
我如何使用新表格,确认删除。我试过使用MessageBox
DialogResult dialogResult = MessageBox.Show("ARE YOU SURE?", "DELETE Title", MessageBoxButtons.YesNo);
if(dialogResult == DialogResult.Yes)
{
if (this.dgvTable.SelectedRows.Count > 0)
{
dgvTable.Rows.RemoveAt(this.dgvTable.SelectedRows[0].Index);
}
}
else if (dialogResult == DialogResult.No)
{
//do something else
}
我知道这可能是最简单的选择。但是我想使用新的CCD_ 6。
感谢
您必须使用新表单的DialogResult
属性。
以您的新形式:
void ButtonDelete_Click(object sender, EventArgs e)
{
this.DialogResult = System.Windows.Forms.DialogResult.OK;
this.Close();
}
void ButtonCancel_Click(object sender, EventArgs e)
{
this.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.Close();
}
然后以主要形式:
private void Delete_Click(object sender, EventArgs e)
{
YourDialog dlg = new YourDialog();
DialogResult dialogResult = dlg.ShowDialog();
if(dialogResult == DialogResult.OK)
{
if (this.dgvTable.SelectedRows.Count > 0)
{
dgvTable.Rows.RemoveAt(this.dgvTable.SelectedRows[0].Index);
}
}
else if (dialogResult == DialogResult.Cancel)
{
return;
}
}
您只需要更改几行即可。
第一个显示形式:
DialogResult dialogResult = new DeleteForm().ShowDialog();
然后检查结果是"OK"而不是"Yes":
if(dialogResult == DialogResult.OK)
最后,DialogResult.No
永远不会返回,所以您的else if
应该只是else
。