我在一个表单上有多个控件,当我从组合框中选择一些值时(例如1),下一个控件被启用,否则下一个控件将被禁用。
问题是,如果我只按1和选项卡,则在下一个控件启用后,但程序跳过它就像控件仍然被禁用一样,并且选项卡控件选择下一个控件。
我需要找到方法如何选项卡检查控件是否已启用并继续此控件,如果仍然禁用控件,则继续执行下一个启用的控件。
感谢名单
答案 0 :(得分:0)
这可能是由您用来控制流量的组合框的事件引起的。
在控件失去焦点后,大多数语言中的“已更改”/“已更改值”事件会启动。
答案 1 :(得分:0)
您忘记为正在使用的UI技术添加标记。
如果您使用的是WinForms,则可以尝试在用户刚编辑的控件上执行SelectNextControl方法。这将为您找到“下一个”控件,并将其激活。
答案 2 :(得分:0)
您为用户创建了一个捕鼠器,很难逃脱。从技术上讲,您可以通过捕获Tab键来处理键盘导航,然后才能使用Tab键进行导航,但当用户想要使用鼠标更改焦点时仍然存在无法解决的问题。他没有什么可以点击的。
您需要重新考虑您的UI设计。一种可能的解决方案是将ComboBox的DropDownStyle更改为DropDownList。如果您使用其所选项目来启用其他控件,那么应该是非常合适的,应该只有一组有限的有效选择。如果那不是你想要的那么你需要做一些激烈的事情。不一定限于隐藏控件而不是禁用它们。
答案 3 :(得分:0)
让我们假设它的winforms(在wpf中使用禁用/启用这样的方式是对抗mvvm规则)。
首先,确保控件的标签顺序/索引正常。要测试,如果它们都已启用,则按 Tab 应按正确的顺序进行测试。这很容易看出
接下来要选择许多可能的解决方案之一,使 1 , Tab 工作:
SelectNextControl
(最适合自定义控件,何时支持该选项卡流程架构);