25

C# dataGridView 无法获取checkbox选中值

 3 years ago
source link: https://bbs.csdn.net/topics/399173378
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

C# dataGridView 无法获取checkbox选中值

dataGridView 添加checkbox列,点击checkBox, 无法正确获取是否选中的状态
C# code?
checkColumn = new DataGridViewCheckBoxColumn();
checkColumn.HeaderText = "select";
checkColumn.Name = "select";
dgv.Columns.Add(checkColumn);
Console.WriteLine(dgv.Columns.Count.ToString());
dgv.CellMouseClick += new DataGridViewCellMouseEventHandler((object sender, DataGridViewCellMouseEventArgs e) =>
{
if (e.ColumnIndex == 4)//列号为什么是4
{
//打印输出行号
Console.WriteLine("index " + e.RowIndex.ToString());
if (e.ColumnIndex == 4)
{
int i = e.RowIndex;
Boolean ret = Convert.ToBoolean(dgv1.Rows[i].Cells["select"].Selected);
if (ret)
Console.WriteLine("true");
else
Console.WriteLine("false");
}
}
});

参考
https://www.cnblogs.com/moss_tan_jun/archive/2011/04/06/2007319.html

dgv1.Rows[i].Cells["select"].Value

参考了他的,但是几个事件都不能正确获取某行的checkbox的选中状态。
    dgv.CellClick += dgv_CellClick;
    dgv.CellValueChanged += dgv_CellValueChanged;
   dgv.CellMouseClick

上面三个都不行。

引用 3 楼 number007cool 的回复:

参考了他的,但是几个事件都不能正确获取某行的checkbox的选中状态。
    dgv.CellClick += dgv_CellClick;
    dgv.CellValueChanged += dgv_CellValueChanged;
   dgv.CellMouseClick

上面三个都不行。

是获取不到,还是获取的是错的??断点调试看看啊

引用 2 楼 Bridge_go 的回复:

dgv1.Rows[i].Cells["select"].Value

在dgv_CellValueChanged事件中有反应了,但是永远慢一拍。
C# code?
private void dgv_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
//打印输出行号
Console.WriteLine("index " + e.RowIndex.ToString());
if (e.ColumnIndex == 5)
{
int i = e.RowIndex;
Boolean ret = Convert.ToBoolean(dgv1.Rows[i].Cells["select"].Value);
if (ret)
Console.WriteLine("true");
else
Console.WriteLine("false");
}
}
依次取消选中第0-5行,然后依次选中第0-5行的check。打印如下:

index 0
false
index 1
false
index 2
false
index 3
false
index 4
false
index 0
true

index 1
true
index 2
true
index 3
true

取消第0行,没反应,取消第一行,打印index 0 false, 取消第2行,打印index 1 false,以此类推。

这种有解决办法么

试了下,确实在点很快的情况下获取状态是错误的。

选中一行后,点Button,在 Buttun_Click里
DataGridViewRow row = this.dataGridView1.SelectedRows[0];
            object value = row.Cells[0].Value;

引用 7 楼 wang_peng 的回复:

选中一行后,点Button,在 Buttun_Click里
DataGridViewRow row = this.dataGridView1.SelectedRows[0];
            object value = row.Cells[0].Value;

没太听懂你的意思,这是要规定用户习惯,每次必须选中行后,才能点击checkbox?分两步走?

另外,我发现上面的逻辑还有个问题,如果在同一行的的checkbox来回点击就没有任何反应。

改为cell_doubleclick事件呢?

C# code?
private void dataGridView1_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
if (e.ColumnIndex == 2)
{
bool isChecked = bool.Parse(this.dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString());
this.dataGridView1.Rows[e.RowIndex].Cells[2].Value = !isChecked;
}
}

加个事件试试

匿名用户不能发表回复!

winform DataGridViewCheckBoxCell值的设置与获取_小鹰...

DataGridViewCheckBoxCell cell = (DataGridViewCheckBoxCell)row.Cells[0]; cell.Value = cbxSelectAll.Checked;//直接赋值bool值 2. 获取值(true / false) Convert.ToBoolean(cellCbx.Value)//转换成bool值 ...

关于datagridviewcheckbox列在选中行的情况下无法操作值

(dgvr.Cells["checkbox列名称"] as DataGridViewCheckBoxCell).Value = (bool)((dgvr.Cells["DeleteFile"] as DataGridViewCheckBoxCell).Value) ? false : true; 发现个问题就是在datagridview选中的那一行上checkbox的值并没有改...

C#DatagridviewCheckBox获取选中状态的不同

// 情况(1) DataGridViewCheckBoxCell checkBox =(DataGridViewCheckBoxCell)SeMsgData.Rows[i].Cells["Msg_CheckBox"]; if(checkBox.Selected == true) ...DataGridViewCheckBoxCell checkBox =(DataGridView

获取DataGridView中的Checkbox选中状态

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { //获取DataGridView中的Checkbox选中状态 Boolean m_bool = Convert.ToBool...

datagridview选中获取行号_如何获取datagridviewcheckbox选中的多行数据

开发(winform)时碰到这个问题 C# 怎样判断 datagridview 中的checkbox列是否被选中,错误原因都C#对类型判断相当严格,为了避免大家以后多走弯路,把我的思路和大家说一下,希望对大家有帮助。for (int i = 0; i <...

C# DataGridView手动添加数据设置CheckBox默认选中

private void TestForm_Load(object sender, EventArgs e) ... this.dataGridView1.Columns.Insert(0, new DataGridViewCheckBoxColumn() { HeaderText = "选择", Name = "select" }); t...

c#datagridview获取选中复选框总数

private void dataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e) { int rowInde = e.RowIndex; if ((Convert.ToBoolean(dataGridView.Rows[rowInde].Cells[0].Value) == true)) { ...

C# Winform中DataGridViewDataGridViewCheckBoxColumn CheckBox是否选中

转载至:...下面介绍Winform中DataGridViewDataGridViewCheckBoxColumn使用方法:  DataGridViewCheckBoxColumn CheckBox是否选中  在判断DataGridViewCheckBox选中列的时候

C# winfrom 中取datagridviewcheckbox的所有选中值

private void DataGrid1_CellContentClick(object sender, DataGridViewCellEventArgs e) { DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)DataGrid1.CurrentRow.Cells["cb_

C# 删除DataGridViewCheckbox选中

private void btnDelete_Click(object sender, EventArgs e) { try { if (this.dataGridView1.Rows.Count == 0) { MessageBo...

C# Winform中DataGridViewDataGridViewCheckBoxColumn CheckBox选中判断

在判断DataGridViewCheckBox选中列的时候,用DataGridViewRow.Cells[0].FormattedValue.ToString()=="True"语句时存在问题,当我们直接点 击CheckBox时,结果显示未选中,但是如果我们在点击其他单元格时,结果...

获取Datagridview 中的checkbox选中

List jobSearchIdList = new List(); //选中的Id for (int i = 0; i ; i++) { if (dgvEXunJobSearch["D_Selected", i].Value != null) //D_

获取datagridviewcheckbox选中的多行数据

private void button2_Click(object sender, EventArgs e) //打开BOM查询{ form2 f2 = new form2(); //第二个表单form2 f2.ShowDialog(this); dataGri

c# datagridview里面的checkbox全选和取消全选 按钮

首先 using System; 然后,设置全选button,选中所有的checkbox private void selectAll_Click(object sender, ... //遍历datagridview中的每一行,判断是否选中,若为选中,则选中 for (int i = 0; i...

关于winform datagridview第一列checkbox无法选中

因为业务需求 我需要在页面显示时,初始化时,根据数据将第一列的checkbox选中,但我写了多行代码多无法实现,不知有没有高手帮忙解答。具体代码,属性如下 ![![![图片说明]...

Datagridview 中的checkbox 选中或勾选状态失效

选中第一行,单元格的单击事件中 改变选中状态为1,第一行取消选择,单元格的单击事件中 改变选中状态为0 private void dgvDept_CellContentClick(object sender, DataGridViewCellEven...

C# 怎样判断 datagridview 中的checkbox列是否被选中

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e){ for(inti=0;i<dataGridView1.Rows.Count;i++) {  if((bool)dataGridView1.Rows[i].Cells[0].EditedF...

c# datagridview 复选框列选择获取值没有变化

public Form1() { InitializeComponent();... datagridview.CellContentClick += dgv_CellContentClick; } private void dgv_CellContentClick(object sender, DataGridViewCellEventArgs e) { if (e.Co...

C#Winform判断DataGridView中的checkbox列是否选中

for (int i = 0; i < this.dataGridView1.Rows.Count; i++) { DataGridViewCheckBoxCell cb = (DataGridViewCheckBoxCell)this.dataGridView1.Rows[i].Cells[0]; bool

datagridview取消默认选中_c# – 带有选中默认值的复选框的DataGridView

我在Winform中有一个dataGridView,我在datagrid中添加了一个带有复选框的列,使用了我在这里看到的代码:DataGridViewCheckBoxColumn column = new DataGridViewCheckBoxColumn();{column.HeaderText = "Export";...

C# Datagridview checkbox

关于checkbox列 (System.Windows.Forms.DataGridViewCheckBoxColumn),用法通常是: a. 按照数据源,显示“选择”或“不选” (即打勾或不打勾); b. 改变选中状态:选中不选; c. .获取选中的数据行; 有两种...

DataGridView操作之获取checkbox选中行数

1 int selected=0; 2 private void dgvArchivesData_CellContentClick(object sender, DataGridViewCellEventArgs e) 3 { 4 for (int i = 0; i < dgvArchivesData.Rows.Count; i++) ......

C# winfrom 中datagridviewcheckbox的使用方法

方法一:  private void dgv_zy_CellContentClick(object sender, DataGridViewCellEventArgs e)  {   int count = Convert.ToInt16(dgv_zy.Rows.Count.ToString());   for (int i = 0;...

C# DataGridViewDataGridViewCheckBoxColumn不能勾选的原因

在InitializeComponent()中有这样的代码...this.dataGridView1.ReadOnly = true; this.Column3.ReadOnly = true;//DataGridViewCheckBoxColumn 说明默认DataGridView和生成的列都是只读的 需要将他们都设为false才行

Winform开发 如何为dataGridView 添加CheckBox列,并获取选中

//添加CheckBoxDataGridViewCheckBoxColumn columncb = new DataGridViewCheckBoxColumn(); columncb.HeaderText = "选择"; columncb.Name = "cb_check"; columncb.TrueValue = ...

获取DataGridViewcheckBox选中的多行数据并将选中的行插入数据库

 代码:(将有关插入的封装到类里面了) private void btAdd_Click(object sender, EventArgs e)  {  try  {  string s = "";  int count = 0;  

C#勾选dataGridView中的CheckBox(可以多选)并把有修改的CheckBox值(1或者0)更新到数据库表A....

你好! 代码示例: private void button1_Click(object sender, EventArgs e) { for (int i = 0; i < dataGridView1.Rows.Count; i++) { try {

C# DataGridViewCheckBoxColumn CheckBox全选

C#实现 DataGridViewCheckBoxColumn CheckBox全选

Java基础概述-Java基础视频_深入浅出精华版

本课程讲解了Java语言概述及环境搭建和配置 学完后可独立完成HelloWorld案例,并能够解决常见的开发小问题。

【中国PHP教育大牛高洛峰】亲授php教程

中国php教程第一人高洛峰亲授php教程,几乎作为了所有php新手入行的装备,影响了几十万的web开发者经典教程。 让菜鸟学php变的更容易。几乎从零开始的学习教程,最终开发畅通无碍。

2021年五一数学建模题目,带附录,全全

参赛选手亲自上传,保全

“互联网+”大学生创新创业大赛项目计划书

填 写 说 明

1.封面上“项目编号”一栏由秘书组编写; 2.项目名称力求简洁、明确,每个项目限报一名负责人; 3.请逐项认真填写; 4.本次大赛必须以团队形式报名参赛,每个团队成员不能少于 3人(包括项目负责人在内); 5.请将撰写完成后的项目计划书按规定时间提交。

相关热词 c# 冲突 多线程 c#实现tcp客户端 c#按钮字体靠左靠左 c#基类的显示方法 c# 结构体作为函数参数 c# 折线图 c#text 覆盖 c#读取数据库安全 c# 动态编译函数 c#摄像头拍照

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK