首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用什么代替FindControl来代替WinForms c#

用什么代替FindControl来代替WinForms c#
EN

Stack Overflow用户
提问于 2014-06-10 21:25:59
回答 1查看 1.8K关注 0票数 1

我正在将我的应用程序从WebForm转换为WinForm,我正在尝试确定用户选择了哪些复选框。在WebForm中,FindControl()允许我找到复选框。在WinForms中,这是不一样的,或者至少它不允许我这样做。如果在网格视图中选中了复选框,以及/或如何更改此复选框以允许FindControl()工作,我可以使用什么?

这里是我找到控件的地方

代码语言:javascript
复制
var rows = dropdeadGridView.Rows;
bool isChecked = ((CheckBox)rows[j].FindControl("SelectCheckBox")).Checked;//problem
if (isChecked)
{
    values += rows[j].Cells[2] + ",";
    CurrentOrders = values;
}

我的问题在上面,因为在下面,我将其放入一个数组中,并将它们分开以传递给我的查询。

代码语言:javascript
复制
string[] o = CurrentOrders.ToString().Split(',');

for (int i = 0; i < o.Length; i++)
{
    SqlConnection dbConn = DBHelper.getConnection();
    try
    {
        using (dbConn)
        {
            SqlCommand addJob = new SqlCommand(@"UPDATE ODetail SET L_NUMBER = @L_NUMBER WHERE S_O_NUMBER = @SONumber", dbConn);
            addJob.Parameters.AddWithValue("@SONumber", o[i]);
            addJob.Parameters.AddWithValue("@L_NUMBER", lNumber.Text);
            dbConn.Open();
            addJob.ExecuteNonQuery();
        }
        MessageBox.Show("Updated!");
     }
     catch (Exception ex)
     {
        throw ex;
     }

错误码

System.Windows.Forms.DataGridViewRow‘不包含'FindControl’的定义,也找不到接受'System.Windows.Forms.DataGridViewRow‘类型的第一个参数的扩展方法'FindControl’(您缺少使用指令还是程序集引用?)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-10 21:31:20

您不需要FindControl in WinForm。你可以简单地做:

代码语言:javascript
复制
bool checkBoxValue = Convert.ToBoolean(dataGridView1.Rows[0].Cells[2].Value); 

假设您正在比较第一行,并且复选框位于第3列中。

还可以迭代每一行以获得选中的复选框值,如下所示:

代码语言:javascript
复制
foreach (DataGridViewRow dr in dataGridView1.Rows)
{
    bool checkBoxValue = Convert.ToBoolean(dr.Cells[2].Value); 
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24151122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档