欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

UltraGrid的Row,通过BindingSource,给ComboBox修改,修改后,内容无法即时反馈给UltraGrid的bug...

发布时间:2023/12/19 编程问答 45 豆豆
生活随笔 收集整理的这篇文章主要介绍了 UltraGrid的Row,通过BindingSource,给ComboBox修改,修改后,内容无法即时反馈给UltraGrid的bug... 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

使用UltraGrid,选中当前Row,把Row的BindingSource给ComboBox修改。当ComboBox的Text第一次修改后,UltraGrid的Row里未能立即反应出该更改。

 

通过观察,如果此时更改其他控件的值,或者此ComboBox多选择几次,就可以实现更改。我这里是通过前者进行的修改。

假设还有一个TextBox,也绑定到该BindingSource上,则:

private void ComboBox_ValueChanged(object sender, EventArgs e)//这个方法是ComboBox的ValueChanged的处理事件 {this.ComboBox.ValueChanged -= this.ComboBox_ValueChanged;string saveValue = this.ComboBox.Text;this.BugFix_ForceNotificeDataSource_DataChange();//关键this.ComboBox.Text = saveValue;this.BindingSource.EndEdit();this.ComboBox.ValueChanged += this.ComboBox_ValueChanged; }private void BugFix_ForceNotificeDataSource_DataChange() {string valueSaved = this.TextBox.Text;this.ComboBox.Text = "Temp";this.ComboBox.Text = valueSaved; }

 

如果你的界面上没有这个额外的TextBox,那么,可以把“BugFix_ForceNotificeDataSource_DataChange”的内容,修改为:

1.获取当前ComboBox的Text的内容,在ComboBox的下拉菜单的位置,假设为indexPosA。

2.让ComboBox选择(SelectIndex)一个不是indexPosA并且属于ComboBox下拉菜单的Count范围内的值。

3.把ComboBox的SelectIndex还原为indexPosA。

显然,这种方法有一个缺陷,那就是,如果ComboBox的下拉菜单没有内容,或者只有1个内容,则这个方法无效。

转载于:https://www.cnblogs.com/xxxteam/archive/2013/02/17/2915026.html

总结

以上是生活随笔为你收集整理的UltraGrid的Row,通过BindingSource,给ComboBox修改,修改后,内容无法即时反馈给UltraGrid的bug...的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。