Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Datagridview C中检索多个复选框#_C#_Datagridview - Fatal编程技术网

C# 在Datagridview C中检索多个复选框#

C# 在Datagridview C中检索多个复选框#,c#,datagridview,C#,Datagridview,您好,下面我展示了当前datagridview的结构,datagridview的最后一个字段有一个复选框,我要做的是检索行的id,当检查为true时,我该怎么做 DataGridView结构: MyId |我的价值|复选框 如果您想获取所选行或单元格的Id,那么它就像@JohnG评论的那样非常简单 否则,如果您不在任何选择行或单元格上,则可以迭代DataGridView并使用 string checkBoxColumnName = "IsMale"; // CheckBox column nam

您好,下面我展示了当前
datagridview
的结构,
datagridview
的最后一个字段有一个复选框,我要做的是检索行的id,当检查为
true
时,我该怎么做

DataGridView结构:

MyId |我的价值|复选框


如果您想获取所选行或单元格的
Id
,那么它就像@JohnG评论的那样非常简单

否则,如果您不在任何选择行或单元格上,则可以迭代DataGridView并使用

string checkBoxColumnName = "IsMale"; // CheckBox column name
string outputColumnName = "MyId"; // Cell column name you want to value from.

var headerColumn = dataGridView1.Columns.Cast<DataGridViewColumn>().Single(c => c.Name == checkBoxColumnName);

var r = dataGridView1.Rows.Cast<DataGridViewRow>().FirstOrDefault(row => (bool)(row.Cells[headerColumn.Index].Value));
var result = r.Cells[outputColumnName].Value.ToString(); // result as string
string checkBoxColumnName=“IsMale”//复选框列名
字符串outputColumnName=“MyId”;//要从中取值的单元格列名。
var headerColumn=dataGridView1.Columns.Cast().Single(c=>c.Name==checkBoxColumnName);
var r=dataGridView1.Rows.Cast().FirstOrDefault(row=>(bool)(row.Cells[headerColumn.Index].Value));
var result=r.Cells[outputColumnName].Value.ToString();//结果为字符串

这是检索ID的一种方法 您必须使用cellValueChanged属性来检索选中的行ID

 private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
           if (Convert.ToBoolean(dataGridView1.CurrentRow.Cells[2]) == true)
                {
                    textbox1.Text = dataGridView1.CurrentRow.Cells[0].Value.ToString();
                }
        }