首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >UI问题-控制控制状态和焦点

UI问题-控制控制状态和焦点
EN

Stack Overflow用户
提问于 2009-12-21 05:04:05
回答 1查看 766关注 0票数 0

在开发.NET windows窗体应用程序时,我陷入了一点僵局。问题在于如何在控件之间切换焦点,以及如何维护窗体的控件状态。

UI中有三个主要控件--两个组合框和一个按钮。

SelectedItem = null.

  • Both组合框开始,
  • 两个组合框都有一组显式的有效选项可供选择。
  • 两个组合框都在使用AutoCompleteMode.SuggestAppendAutoCompleteSource设置为AutoCompleteSource.ListItems。这意味着用户可以键入组合框并有建议弹出,因为除非在select.
  • ComboBox #1中选择了一个特定值,否则enabled.
  • ComboBox #1总是禁用enabled.
  • ComboBox #2。只有在以下情况下才启用按钮:从始终启用的组合框中选择了
    • ,一个有效值。已从第二个组合框IFF中选择了一个有效值,在第一个组合框中选择了一个特定值。否则,它的值将被忽略。

问题在于键盘导航和控制焦点,以及它们如何与维护各种控件的Enabled状态相关联的逻辑一起工作。

简而言之,当为组合框选择一个值时,在运行启用/禁用控件的逻辑之前,按TAB (以使您选择组合框)将焦点放在窗体上的下一个控件上(按照TabIndex顺序)。

启用/禁用控件的逻辑发生在关联组合框的验证/验证事件中。

最终的结果是,在给定焦点之后,可以禁用控件。

例如:

  1. 只启用ComboBox #1。ComboBox #2和按钮被禁用。所有ComboBox的SelectedItem都设置为null。
  2. 将焦点设置为ComboBox #1。
  3. 键入框的有效选项的前几个字母。
  4. 出版社.

当我按下TAB时,在更改SelectedItem之前,似乎会将焦点放在下一个控件上。在更改SelectedItem之前,无法运行启用或禁用其他UI控件的业务逻辑。

理想情况下,我想要的是相反的方法:焦点应该在UI控件的SelectedItem更新之后转移,因此更新控件状态的逻辑已经运行。

有人对我怎么做有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-12-21 05:19:23

您能否显式地更改SelectedIndexChanged / SelectedValueChanged中适当组合框的焦点?您可能需要检查焦点当前的位置,并且只有当焦点位于禁用的控件上时才进行移位。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1938303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档