gpt4 book ai didi

c# - 使用 .NET 3.5 时如何删除 LinkLabel 作为制表位?

转载 作者:行者123 更新时间:2023-11-30 19:26:12 26 4
gpt4 key购买 nike

当用户在字段中切换时,他们必须通过 LinkLabel 切换到下一个字段。我宁愿他们直接从一个领域到另一个领域,而不停留在 LinkLabel 上。但是,在 .NET 3.5 中,LinkLabel 没有设置为 false 的 TabStop 属性。升级到 .NET 4.0 或 .NET 4.5 不是今天的选择。

我已经尝试了两种其他可能的方法来跳过不起作用的 LinkLabel。

  1. 将 LinkLabel 放在面板上并将面板上的 TabStop 属性设置为 false。 LinkLabel 仍会被标记到。

  2. 处理 LinkLabel 上的 Enter 事件并使用 SendKeys 或类似的废话继续下一个控件。这不起作用,因为它会使 Click 事件停止触发。

我还考虑过将表单上所有 LinkLabel 的 TabIndex 设置为比其余控件高得多的值。但是,这也行不通

每个字段都是带有标签的面板上的文本框或组合框。 ComboBox 字段在面板上有一个附加控件:一个 LinkLabel,上面写着“编辑项目”。这些面板中的每一个都位于主 FlowLayoutPanel 上。

如果我错了请纠正我。我理解嵌套面板上控件的 Tab 键顺序的方式是每个面板都有自己的 Tab 键顺序。然后根据各个Panel的TabIndex将各个的Tab键顺序串联起来,确定窗体上控件的有效Tab键顺序。正确的?因此,按照我的看法,将每个 LinkLabel 的 TabIndex 设置为 200 多位的数字并不能解决最初的问题。

有没有人见过这个挑战?你是怎么解决的?我觉得我可能不得不做一些激烈的事情,比如对 LinkLabel 控件进行子类化。你会怎么做?

最佳答案

那是个错误,LinkLabel 继承自 Label,后者对聚焦没有有意义的支持。因此该属性隐藏在“属性”窗口中,就像标签一样。 .NET 4.0 纠正了这个错误。

这不是真正的问题,该属性仍然可用。只需在代码中设置它即可:

public partial class Form1 : Form {
public Form1() {
InitializeComponent();
linkLabel1.TabStop = false;
}
// etc..
}

请注意,该属性对于 IntelliSense 也是隐藏的,因此您得不到帮助不要感到惊讶。

关于c# - 使用 .NET 3.5 时如何删除 LinkLabel 作为制表位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24831680/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com