gpt4 book ai didi

C++/CLR DataSourceUpdateMode::OnPropertyChanged with TextBox 将光标向左移动

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:24:58 26 4
gpt4 key购买 nike

我将一个数据源绑定(bind)到一个 Windows 窗体文本框,并且该源必须在每次按键时进行验证以提供及时的用户反馈(以启用/禁用相关控件的形式)。因此我绑定(bind)了 DataSourceUpdateMode::OnPropertyChanged。不幸的是,这会导致文本框在每次击键时将光标重置到字段的左侧,从而导致用户输入被反转。使用 DataSourceUpdateMode::OnValidation 消除了光标问题,但是当然数据源在焦点离开 TextBox 之前不会更新,在这种情况下这是 Not Acceptable (我有一个灰色的“应用”按钮,直到值发生变化).

This thread描述了问题,但仅适用于 RichTextBox,并声称常规 TextBox 不存在该问题。我在使用常规 TextBox 时遇到问题。

有没有人看到这个问题并找到了解决它并仍然使用 Binding 对象的方法?

编辑:测试显示表单上按钮的点击事件验证之前触发,这意味着如果用户点击文本字段更改值,然后直接点击“应用” ,"输入的值未及时传播到数据源以响应单击。换句话说,对于我的应用程序,带有文本框的 OnValidate 的有用性显着降低。

最佳答案

事实证明,为绑定(bind)打开字符串格式可以解决插入符号位置问题。

什么是:

textbox->DataBindings->Add("Text", model_object, "MyProperty", false, 
DataSourceUpdateMode::OnPropertyChanged);

变成:

textbox->DataBindings->Add("Text", model_object, "MyProperty", true, 
DataSourceUpdateMode::OnPropertyChanged);

就像魔术一样,插入符号停止重新定位。如果有人可以发表评论并解释为什么这是有道理的,请发表评论!

This MSDN forum post提供了尝试打开字符串格式的提示。

关于C++/CLR DataSourceUpdateMode::OnPropertyChanged with TextBox 将光标向左移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20708848/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com