如题,textbox到bingdingsource上,如果在textbox里修改数据后,不将焦点移动到其他控件上的话,直接按保存按钮,是无法将数据保存到数据库里的。datagridview里这个问题可以通过设置currenCell=null来解决,但textbox要如何解决这个问题呢?请大家解惑!网上搜了一下,好像除了在保存之前移一下焦点之外,好像没有其他办法。

解决方案 »

  1.   

    试试TextChanged,可能ms认为否则太频繁了
      

  2.   

    textChanged如何使用?在里面强制转移焦点?
      

  3.   


    this.button.Focus();//获取焦点
      

  4.   

    界面有N个textbox哦,我不可能每个控件的textchanged里都写一次focus吧?
      

  5.   


    我保存之前已经执行过bindingsource的endedit方法了,还是不起作用,郁闷啊。
      

  6.   

    多个textbox可以响应一个onchanged事件
      

  7.   

    默认情况下,数据绑定的控件是在Validated事件里更新数据源的,所以要焦点离开控件以后才保存。你可以在设计器的属性窗口里找到DataBindings,然后在下面的Advanced里修改,把更新方式设置为OnPropertyChanged。还有一种办法,可以在数据保存之前,先找到具有焦点的控件,然后依次调用DataBindings里各个Binding的WriteValue方法强制写入数据。
      

  8.   

    this.txtUserName.TextChanged += textBox_Changed;void textBox_Changed(object sender,EventArgs e)
    {
       做的你操作。
    }