功能背景:Winfrom窗体项目
功能:在dataGridView表格中右击行出现有删除按钮的菜单框,点击删除按钮删除选择行。
功能实现:在页面中添加ContextMenuStrip控件,然后在该控件添加删除按钮和一个隐藏的lable,用来储存右击行的ID,然后在表格的ContextMenuStrip属性中选择对应的ContextMenuStrip控件。然后在表格的单元格右击时,把ID传到ContextMenuStrip控件中的隐藏的lable中,然后点击删除按钮的时候将lable中的ID给进行删除操作。
具体代码如下:
首先:在单元格的鼠标点击事件判断,如果是右击的话,就将选择行的ID传到lable中。
private void dataGridViewX6_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
//单元格右击
if (e.Button == MouseButtons.Right)
{
DataGridViewRow dgv = dataGridViewX6.Rows[e.RowIndex];
//获取点击行的信息
labelItem1.Text = "用户:" + dgv.Cells["User_Name_P"].Value.ToString();
labelItem2.Text = dgv.Cells["User_ID"].Value.ToString();
}
}
因为表格右击会显示ContextMenuStrip控件,所以要在表格中不是点击单元格的时候将lable的text值变为0;
private void dataGridViewX6_MouseDown(object sender, MouseEventArgs e)
{
//判断是否是鼠标右击
if (e.Button == MouseButtons.Right)
{
labelItem1.Text = "--";
labelItem2.Text = "00";
}
}
//删除按钮
private void buttonItem3_Click(object sender, EventArgs e)
{
//判断是00,证明鼠标右击无数据,提示无法删除
if (labelItem2.Text == "00")
{
MessageBox.Show("无用户删除!", "提示");
return;
}
else
{
//如果有行数据,只判断删除的用户是否是自己,是者不能删除
if (Login.user_id == Convert.ToInt32(labelItem2.Text.ToString().Trim()))
{
MessageBox.Show("无权限删除改用户!", "提示");
return;
}
if (MessageBox.Show("确定删除" + labelItem1.Text + "吗?", "提示", MessageBoxButtons.OKCancel) == DialogResult.OK)
{
if (bll.Delete_user_ID(Convert.ToInt32(labelItem2.Text.ToString().Trim())) > 0)
{
MessageBox.Show("删除成功!", "提示");
this.dataGridViewX6.DataSource = ambll.SelectUser_UserType().Tables[0];
}
else
{
MessageBox.Show("删除失败!", "提示");
}
}
}
}
版权声明:本文为qq_43439125原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。