C# 选项卡控件-等待控件启用
我在一个窗体上有多个控件,当我从组合框(例如1)中选择某个值时,下一个控件变为启用,否则下一个控件保持禁用状态 问题是,若我只按1键和tab键,那个么在下一个控件启用之后,程序就会跳过它,就像控件仍然被禁用一样,tab控件选择下一个控件 我需要找到如何制表符检查控件是否启用并继续此控件,如果控件仍然禁用,则继续下一个启用的控件C# 选项卡控件-等待控件启用,c#,tabs,C#,Tabs,我在一个窗体上有多个控件,当我从组合框(例如1)中选择某个值时,下一个控件变为启用,否则下一个控件保持禁用状态 问题是,若我只按1键和tab键,那个么在下一个控件启用之后,程序就会跳过它,就像控件仍然被禁用一样,tab控件选择下一个控件 我需要找到如何制表符检查控件是否启用并继续此控件,如果控件仍然禁用,则继续下一个启用的控件 Thanx这可能是由您用来控制流量的组合框事件引起的 大多数语言中的“更改”/“值更改”事件在控件失去焦点后会触发。您忘记为正在使用的UI技术添加标记 如果您使用的是Wi
Thanx这可能是由您用来控制流量的组合框事件引起的
大多数语言中的“更改”/“值更改”事件在控件失去焦点后会触发。您忘记为正在使用的UI技术添加标记
如果您使用的是WinForms,则可以尝试在控件上执行用户刚刚编辑的方法。这将为您找到“下一个”控件,并将其激活。您为用户创建了一个捕鼠器,很难逃脱。从技术上讲,您可以在使用Tab键进行导航之前通过捕获Tab键来处理键盘导航,但是当用户想要使用鼠标改变焦点时,仍然存在无法解决的问题。他没有什么像样的东西可以点击 你需要重新思考你的UI设计。一个可能的解决方案是将ComboBox的DropDownStyle更改为DropDownList。如果您使用它的选定项来启用其他控件,这应该是非常合适的,应该只有一组有限的有效选择。如果这不是你想要的,那么你需要做一些激烈的事情。不一定局限于隐藏控件而不是禁用它们。让我们假设它是winforms(在wpf中这样使用禁用/启用控件是..违反mvvm规则) 首先,确保控件的选项卡顺序/索引是正确的。要进行测试,如果它们都已启用,则按Tab键应按正确的顺序遍历它们。这是显而易见的 下一件事是从许多可能的解决方案中选择一个,使1,Tab工作:
- 完全禁用选项卡键导航李>
- 使控件将控件(焦点)传递给特定控件(使选项卡顺序不相关)李>
- 使用
(最适用于自定义控件,它将在何时支持该选项卡流模式)李>选择nextcontrol
- 防止焦点改变,执行所有逻辑,改变焦点(理论上)