winforms 在VB.NET中,将焦点设置到另一个控件可防止更改当前控件值

dgenwo3n  于 2023-02-19  发布在  .NET
关注(0)|答案(1)|浏览(185)

我有一个用VB.NET编写的WinForms应用程序中的ComboBox。在.SelectionChangeCommitted事件中,我想将焦点更改为一个不同的特定控件,以帮助用户工作流。但是,当我这样做时,更改没有保存在初始ComboBox上,值和索引恢复为原始值。
我已经使用了myControl.Focus和myControl.Select
组合框设置如下:

With ChoosePartType
            .DisplayMember = "PartName"
            .DataSource = GetTable(qry) 'This custom function returns a DataTable with fields PartNum and PartName
            .ValueMember = "PartNum"
            .SelectedIndex = -1
        End With

我假设在改变焦点的过程中有什么东西使属性的改变短路了。有没有办法在我改变焦点之前强制它发生呢?
注:似乎是与WInforms Combobox SelectionChangeCommitted event doesn't always change SelectedValue不同的问题
与此类似,但我不使用数据绑定:Combobox DataBinding Bug - Won't write value if programmatically losing focus

qlzsbp2j

qlzsbp2j1#

尝试使用选择零件类型.选定项目.行(“零件编号”)。
假设这是控件数据源的第一列,则也可以将其编写为ChoosePartType.SelectedItem.Row(0)。

相关问题