winform dataGridView 中使用了DataGridViewCheckBoxColumn怎么进行选择后的事件处理。 200
比如选择后点击“删除”按钮,进行删除,或选择后点击修改按钮,弹窗进行信息修改,现在CheckBox点不了勾,怎么写代码、求详细代码示范举例。勾选CheckBox怎么写?删...
比如选择后点击“删除”按钮,进行删除,或选择后点击修改按钮,弹窗进行信息修改,现在CheckBox点不了勾,怎么写代码、求详细代码示范举例。
勾选CheckBox怎么写?删除按钮怎么写?修改按钮怎么写? 展开
勾选CheckBox怎么写?删除按钮怎么写?修改按钮怎么写? 展开
3个回答
展开全部
可能是你控件采用全局的ReadOnly模式了,要想要可以勾选,又要只读模式,那么你必须一列一列的设置readonly属性全部true除了了你check列为false
一下是常用的处理方式,仅供参考
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace Demo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
//测试数据()
dataGridView1.Rows.Add(new object[]{false,"删除","修改"});
dataGridView1.Rows.Add(new object[] { false, "删除1", "修改1" });
dataGridView1.Rows.Add(new object[] { false, "删除2", "修改2" });
}
//dataGridView的单元格点击事件
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex != -1&&e.ColumnIndex>0)
{
bool ischecked=(bool)dataGridView1.Rows[e.RowIndex].Cells[0].Value;
// 其中dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex>]就是你当前点击的行对象,你可以得到点击行的ID,值等你想要的信息,然后做后续操作就可以了
if (ischecked)
{
switch (e.ColumnIndex)
{
case 1://这里弹出删除的窗口
MessageBox.Show("你点击了删除按钮");
break;
case 2://这里填写你跳转的窗口代码
MessageBox.Show("你点击了修改按钮");
break;
}
}
else
MessageBox.Show("请先勾选,然后进行操作!");
}
}
}
}
具体效果就是这样的,3列 分别是 第一列 checkBox,第2,3列都是button列
我这个采用的列选项,列按钮来做,用户体验会更好的!!
更多追问追答
追问
CheckBox勾选的问题解决了谢谢,我的意思是选择CheckBox后,整行的数据都被选中,点击删除,删除整行的数据这个怎么做?
追答
这个是一个逻辑问题啊!!
用了复选框了,你就根据复选框的状态来判断是否可以操作就是了!!
这个有什么困难呢?
int count=dataGridView_MeterType.Rows.Count;
for (int i = 0; i < count; i++)
{
DataGridViewRow dr = dataGridView_MeterType.Rows[i];
if ((bool)dr.Cells[0].Value)
{
//删除选定的所有行
dataGridView_MeterType.Rows.Remove(dr);
i--;
count--;
}
}
展开全部
两种方案:
给每一个CheckBox绑定一个ID在触发DataGridViewCheckBoxColumn时候将ID获取到放置于一个数组里面然后点击修改或者删除时候直接对数组进行操作,需要注意的是在取消选择的时候需要将数组中对应的值移除。
不使用DataGridViewCheckBoxColumn这个方法,在点击修改或删除时候,读取DataGridView第一行的数据,然后进行遍历找到所有选中的CheckBox找到对应的操作ID进行修改或删除(建议使用第一种方式)
给每一个CheckBox绑定一个ID在触发DataGridViewCheckBoxColumn时候将ID获取到放置于一个数组里面然后点击修改或者删除时候直接对数组进行操作,需要注意的是在取消选择的时候需要将数组中对应的值移除。
不使用DataGridViewCheckBoxColumn这个方法,在点击修改或删除时候,读取DataGridView第一行的数据,然后进行遍历找到所有选中的CheckBox找到对应的操作ID进行修改或删除(建议使用第一种方式)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
两种方案:
给每一个CheckBox绑定一个ID在触发DataGridViewCheckBoxColumn时候将ID获取到放置于一个数组里面然后点击修改或者删除时候直接对数组进行操作,需要注意的是在取消选择的时候需要将数组中对应的值移除。
不使用DataGridViewCheckBoxColumn这个方法,在点击修改或删除时候,读取DataGridView第一行的数据,然后进行遍历找到所有选中的CheckBox找到对应的操作ID进行修改或删除(建议使用第一种方式)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询