vs 2005.
主界面frmMain的dataGridView(id:dtg) 有40多列,不方便编辑,因此做成双击时弹出另一个窗体frmSubfrmMain 窗体加载时,给dtg绑了个空的dataTable(select * from tblxxx where id= 一个不存在的条件)。dtg 和 frmSub里的控件都是与这个dataTalbe绑定。由于frmSub 中有40多个控件,所以绑定是用一个循环来做的:
测试结果,用循环来绑定是成功了,但CurrencyManager.Position 来设置指定的行,似乎没有生效。请问是不是 数据源 datatable 的问题? 对于dtg的新行,需不需要特别处理?另外,这其中,有哪些是由.net 自己维护的?哪些步骤需要代码来完成?

解决方案 »

  1.   

    问题解决了, 我想关键应该是在这里
     if (dtb.Rows.Count == 0 || dtb.Rows.Count < RowIndex)
     {
             dtb.DefaultView.AddNew();
     }
    可是还不明白一点,既然DataGridView 和 DataTable 绑定了,它为什么不对新行进行维护呢?
      

  2.   

    TO:可是还不明白一点,既然DataGridView 和 DataTable 绑定了,它为什么不对新行进行维护呢?
    没太明白,什么叫做不对新行进行维护呢?
      

  3.   

    To: liujia_0421(SnowLover) 
    有一个这样的例子,界面两个combobox , 分别绑定同一DataTable上的同一行的不同两列,
    Combobox 不需要设置它的事件,在改变其中一个combobox selectedvalue时,另一个就会跟着变。
    这个就是我说的,自动维护。那我的意思是,当datagridview  与 一个有结构但无数据的datatable  绑定后,为什么编辑datagridview 的新行时,要手动去给datatable 加一行,为什么不自动加?谢谢。