foreach (TabPage tp in tabControl2.TabPages)
            {
                Panel pl = (Panel)tp.Controls[0];
                foreach (Control c in pl.Controls)
                {
                    if (c is Panel)
                    {
                        Panel panel = (Panel)c;
                        foreach (Panel var in panel.Controls)
                        {
                            MIS.Model.GZZ_JG model = new MIS.Model.GZZ_JG();
                            com = (ComboBox)var.Controls[1];
                            cb = (CheckBox)var.Controls[2];
                            model.djbh = lblTjbh.Text;
                            model.ksid = 57; //
                            model.sfyc = cb.Checked == false ? 0 : 1;
                            model.sjjg = com.Text;     //此处毛病.不懂???
                            model.xmid = Convert.ToInt32(com.Tag);
                            model.grbh = dgvLc.CurrentRow.Cells["ygrbh"].Value.ToString();
                            model.Yyxm = Uid;
                            model.Jcrq = DateTime.Now.Date;
                            dic.Add(i, model);
                            i++;
                        }
                    }
                }
            }tabControl除了第一个page没问题,其他的page时不时的冒出model.sjjg = com.Text;  值为System.Data.DataRowView,哪位大虾帮忙看下,是什么毛病..

解决方案 »

  1.   

    foreach (Control var in panel.Controls)
      

  2.   

     foreach (Panel var in panel.Controls)
    再加个判断
    if (com !=null)
    {
     model.sjjg = com.Text;
    }
      

  3.   

    是获取不到值
    你应该在combobox的SelectionChangeCommitted事件的最后 再次调用将combobox的数据源绑定一次
      

  4.   

    我查看了com的值,当中有值的,查看了下面的text就有值了,不查看就没值,- - !无语了
      

  5.   

    这个事件有点不妥额,除了第一个page外我不去选择的话就没触法事件了么?请在出出招,帮帮,谢谢了
      

  6.   

    问题应该出在tabcontrol中,搞不懂了
      

  7.   

    用var当变量名,编译器也不闹别扭,看来VS的向后兼容工作做的挺到位。
      

  8.   

    DataRowView drv = (DataRowView)comboBox1.SelectedItem;
    string Id = drv.Row["id"].ToString();