日期:2014-05-17  浏览次数:20754 次

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

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