【发布时间】:2014-09-09 23:39:36
【问题描述】:
当用户在字段中切换时,他们必须通过 LinkLabel 来切换到下一个字段。我宁愿他们直接从一个领域到另一个领域,而不是在 LinkLabel 上停留。但是,在 .NET 3.5 中,LinkLabel 没有设置为 false 的 TabStop 属性。升级到 .NET 4.0 或 .NET 4.5 现在不是一种选择。
我尝试了另外两种可能的跳过 LinkLabel 的方法,但这些方法不起作用。
将 LinkLabel 放在面板上,并将面板上的 TabStop 属性设置为 false。 LinkLabel 仍会被标记到。
处理 LinkLabel 上的 Enter 事件并使用 SendKeys 或一些类似的废话继续下一个控件。这不起作用,因为它使 Click 事件停止触发。
我还考虑将表单上所有 LinkLabels 的 TabIndex 设置为比其他控件高得多的值。但是,这也行不通
每个字段都是面板上带有标签的文本框或组合框。 ComboBox 字段在面板上有一个附加控件:一个显示“编辑项目”的 LinkLabel。这些面板中的每一个都位于主 FlowLayoutPanel 上。
如果我错了,请纠正我。我理解嵌套面板上控件的选项卡顺序的方式是每个面板都有自己的选项卡顺序。然后根据每个Panel的TabIndex依次组合每个的Tab顺序,确定窗体上控件的有效Tab顺序。正确的?因此,在我看来,将每个 LinkLabel 的 TabIndex 设置为 200 高的数字并不能解决最初的问题。
有人见过这个挑战吗?你是怎么解决的?我觉得我可能必须做一些激烈的事情,比如将 LinkLabel 控件子类化。你会怎么做?
【问题讨论】:
标签: c# .net winforms .net-3.5 linklabel