C# 如何在Winform应用程序中获取datagridview特定单元格的值
我有一个dataGridView,它在第一列中包含复选框。现在,根据我的要求,我必须为在另一个按钮单击事件中单击其复选框的行获取C# 如何在Winform应用程序中获取datagridview特定单元格的值,c#,winforms,checkbox,datagridview,C#,Winforms,Checkbox,Datagridview,我有一个dataGridView,它在第一列中包含复选框。现在,根据我的要求,我必须为在另一个按钮单击事件中单击其复选框的行获取Employee No列的值。以及如何获取选中的多个复选框的值 这是我的密码 private void btn_load_Click(object sender, EventArgs e) { DataTable dt = new DataTable(); dt.Columns.Add("Select", System.
Employee No
列的值。以及如何获取选中的多个复选框的值
这是我的密码
private void btn_load_Click(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("Select", System.Type.GetType("System.Boolean"));
dt.Columns.Add("Employee No");
dt.Columns.Add("Employee Name");
dt.Columns.Add("Join Date");
DataRow dr;
for (int i = 0; i <= 10; i++)
{
dr = dt.NewRow();
dr["Select"] = false;
dr["Employee No"] = 1000 + i;
dr["Employee Name"] = "Employee " + i;
dr["Join Date"] = DateTime.Now.ToString("dd/MM/yyyy");
dt.Rows.Add(dr);
}
dataGridView1.AllowUserToAddRows = true;
dataGridView1.AllowUserToDeleteRows = true;
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
dataGridView1.DataSource = dt;
}
private void btn_Click(object sender, EventArgs e)
{
//I need the Employee Id values here
}
private void btn\u load\u单击(对象发送方,事件参数e)
{
DataTable dt=新的DataTable();
Add(“Select”,System.Type.GetType(“System.Boolean”);
dt.栏添加(“员工编号”);
dt.列。添加(“员工姓名”);
dt.列。添加(“加入日期”);
数据行dr;
对于(int i=0;i,因为您已经将数据表绑定到grids数据源,所以可以将dt
设置为类变量,并使用它来检查所选的变量
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private DataTable dt;
private void btn_load_Click(object sender, EventArgs e)
{
dt = new DataTable();
dt.Columns.Add("Select", System.Type.GetType("System.Boolean"));
dt.Columns.Add("Employee No");
dt.Columns.Add("Employee Name");
dt.Columns.Add("Join Date");
DataRow dr;
for (int i = 0; i <= 10; i++)
{
dr = dt.NewRow();
dr["Select"] = false;
dr["Employee No"] = 1000 + i;
dr["Employee Name"] = "Employee " + i;
dr["Join Date"] = DateTime.Now.ToString("dd/MM/yyyy");
dt.Rows.Add(dr);
}
dataGridView1.AllowUserToAddRows = true;
dataGridView1.AllowUserToDeleteRows = true;
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
dataGridView1.DataSource = dt;
}
private void btn_Click(object sender, EventArgs e)
{
//I need the Employee Id values here
foreach (DataRow row in dt.Rows)
{
if ((bool)row["Select"] == true)
{
}
}
}
}
公共部分类表单1:表单
{
公共表格1()
{
初始化组件();
}
专用数据表dt;
私有无效btn\u加载\u单击(对象发送方,事件参数e)
{
dt=新数据表();
Add(“Select”,System.Type.GetType(“System.Boolean”);
dt.栏添加(“员工编号”);
dt.列。添加(“员工姓名”);
dt.列。添加(“加入日期”);
数据行dr;
对于(int i=0;i,因为您已经将数据表绑定到grids数据源,所以可以将dt
设置为类变量,并使用它来检查所选的变量
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private DataTable dt;
private void btn_load_Click(object sender, EventArgs e)
{
dt = new DataTable();
dt.Columns.Add("Select", System.Type.GetType("System.Boolean"));
dt.Columns.Add("Employee No");
dt.Columns.Add("Employee Name");
dt.Columns.Add("Join Date");
DataRow dr;
for (int i = 0; i <= 10; i++)
{
dr = dt.NewRow();
dr["Select"] = false;
dr["Employee No"] = 1000 + i;
dr["Employee Name"] = "Employee " + i;
dr["Join Date"] = DateTime.Now.ToString("dd/MM/yyyy");
dt.Rows.Add(dr);
}
dataGridView1.AllowUserToAddRows = true;
dataGridView1.AllowUserToDeleteRows = true;
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
dataGridView1.DataSource = dt;
}
private void btn_Click(object sender, EventArgs e)
{
//I need the Employee Id values here
foreach (DataRow row in dt.Rows)
{
if ((bool)row["Select"] == true)
{
}
}
}
}
公共部分类表单1:表单
{
公共表格1()
{
初始化组件();
}
专用数据表dt;
私有无效btn\u加载\u单击(对象发送方,事件参数e)
{
dt=新数据表();
Add(“Select”,System.Type.GetType(“System.Boolean”);
dt.栏添加(“员工编号”);
dt.列。添加(“员工姓名”);
dt.列。添加(“加入日期”);
数据行dr;
对于(inti=0;i假设表单类中有一个全局变量声明为
List<int> empIDs = new List<int> empIDs();
单击事件结束时,全局变量将填充单击其选择单元格的员工的ID假设表单类中有一个全局变量声明为
List<int> empIDs = new List<int> empIDs();
单击事件结束时,全局变量将填充已单击其选择单元格的员工ID。您还可以使用DataSource属性:
private void btn_Click(object sender, EventArgs e)
{
int[] employeeIds = (dataGridView1.DataSource as DataTable).Rows
.Cast<DataRow>()
.Where(r => (bool)r["Select"])
.Select(r => Convert.ToInt32(r["Employee No"]))
.ToArray();
}
private void btn\u单击(对象发送者,事件参数e)
{
int[]employeeIds=(dataGridView1.DataSource作为DataTable)。行
.Cast()
。其中(r=>(bool)r[“选择”])
.Select(r=>Convert.ToInt32(r[“员工编号]))
.ToArray();
}
并使用System.Linq命名空间。您还可以使用DataSource属性:
private void btn_Click(object sender, EventArgs e)
{
int[] employeeIds = (dataGridView1.DataSource as DataTable).Rows
.Cast<DataRow>()
.Where(r => (bool)r["Select"])
.Select(r => Convert.ToInt32(r["Employee No"]))
.ToArray();
}
private void btn\u单击(对象发送者,事件参数e)
{
int[]employeeIds=(dataGridView1.DataSource作为DataTable)。行
.Cast()
。其中(r=>(bool)r[“选择”])
.Select(r=>Convert.ToInt32(r[“员工编号]))
.ToArray();
}
并使用System.Linq命名空间。使用DataGridView\u CellContentClick事件捕获员工Id值Private Sub DataGridView\u CellContentClick(ByVal发件人作为System.Object,ByVal e作为System.Windows.Forms.DataGridViewCellEventArgs)处理DataGridView.CellContentClick如果DataGridView.Rows(DataGridView.CurrentCell.RowIndex)。单元格(0).Value=True然后“如果结束使用DataGridView\u CellContentClick事件捕获员工Id值Private Sub DataGridView\u CellContentClick(ByVal发件人作为System.Object,ByVal e作为System.Windows.Forms.DataGridViewCellEventArgs)处理DataGridView.CellContentClick如果DataGridView.Rows(DataGridView.CurrentCell.RowIndex).Cells(0).Value=True然后“如果结束,则执行某项操作”