dataGridView与textbox同时绑定一张table相同字段,
打比方,一张表,默认有一笔记录myTable
   id     Name
   1     胡汉三有些变量我就直接用了,不累赘定义了//绑定数据表到dataGridView
dataGridView1.DataSource = ds;
dataGridView1.DataMember = ds.Tables["myTable"].TableName;//txtName为textBox,DT为DataTable,绑定字段Name
txtName.DataBindings.Add(new System.Windows.Forms.Binding("Text", DT, "Name", true));
   
也就是说dataGridView1与txtName都绑定同一字段Name现在
//为数据集添加数据项浏览控制
cmOrders = (CurrencyManager)BindingContext[ds, "myTable"];刚开始窗口一加载da.Fill(),dataGridView1相应列第一行与txtName的Text都显示  胡汉三
但是当我cmOrders.AddNew();的时候,dataGridView1是新增了一笔空记录,但是txtName怎么还显示   胡汉三,按理说应该对应dataGridView1的记录内容啊,应该是空的啊,请教怎么解决这个问题?

解决方案 »

  1.   

    dataGridView1是新增了一笔空记录应该与绑定相同字段的textBox的记录值同步啊,我是这样一个想法,请教
      

  2.   

    你看下我做的也是dataGridView与textbox同时绑定一张table相同字段,不过用的是linq
    注意我还使用BindingSource和bindingNavigator1控件,更方便,绑定代码       
    先 private BindingSource bind;
                DataClasses1DataContext dc = new DataClasses1DataContext(); 
                var Waf_pihao = from a in dc.pihao
                                 select a;
                bind = new BindingSource();
                bind.DataSource = Waf_pihao;
                bindingNavigator1.BindingSource = bind;
     
                textBox1.DataBindings.Clear();
                textBox1.DataBindings.Add("Text", bind, "pihao1", true);
                dataGridView1.DataSource = bind;加新纪录            bind.AddNew();
                textBox3.Text = Class1.mess3;//如果要预先给一个值就一定要下面这行
                textBox3.DataBindings["Text"].WriteValue();请参看,虽然是linq但原理一样的
      

  3.   

    你这个本来就有问题,textbox跟数据源绑定,没怎么用过这功能,既然已经绑定好了,它的值就不会发生改变,除非你添加事件来手动改变它的数值!
    正如你说的,你需要添加一个新的数据行,那么你想这个新的数据行中的某个字段显示在Textbox中,此时直接找到这个新数据行(或者是你选择的某一个数据行,直接赋值给textbox.Text属性就可以鸟!)
      

  4.   

    tbox没有像dgv那个事件所以在点添加按钮的代码里写textBox1=“” 来清空txbox一般不绑定数据,从dgv获取数据就可以了
      

  5.   

    但是要有一种效果,就是我在textbox中编辑新增的资料的时候,对应的dataGridView那一行中的那个单元格也同步一起更新啊,比如我在  textbox里面输入  李,dataGridView就一样映射这个   李 也显示啊,同步的,要有这种效果才行
      

  6.   

    用bindingsource来控制数据的同步