Eld*_*ash 2 .net c# linklabel .net-3.5 winforms
当用户在字段中进行选项卡时,他们必须通过LinkLabel选项卡才能转到下一个字段.我宁愿他们直接从一个地方到另一个地方而不停在LinkLabel上.但是,在.NET 3.5中,LinkLabel没有将TabStop属性设置为false.升级到.NET 4.0或.NET 4.5不是今天的选择.
我已经尝试了另外两种跳过LinkLabel的方法.
将LinkLabel放在面板上并将面板上的TabStop属性设置为false.LinkLabel仍然会被标记为.
处理LinkLabel上的Enter事件并使用SendKeys或一些此类废话继续下一个控件.这不起作用,因为它使Click事件停止触发.
我还考虑将窗体上所有LinkLabel的TabIndex设置为比其他控件高得多的值.但是,这也行不通
每个字段都是带有Label的面板上的TextBox或ComboBox.ComboBox字段在面板上有一个额外的控件:一个名为"编辑项目"的LinkLabel.这些面板中的每一个都在主FlowLayoutPanel上.
如我错了请纠正我.我理解嵌套面板上控件的Tab键顺序的方式是每个Panel都有自己的Tab Order.然后根据每个Panel的TabIndex将每个的Tab键顺序组合在一起,以确定表单上控件的有效Tab键顺序.对?因此,将每个LinkLabel的TabIndex设置为高200s的数字将无法解决原始问题,就像我看到的那样.
以前有人见过这个挑战吗?你是怎么解决的?我觉得我可能要像LinkLabel控件那样做一些激烈的事情.你会怎么做?
这是一个错误,LinkLabel继承自Label,它对聚焦没有有意义的支持.因此,属性隐藏在"属性"窗口中,就像标签一样..NET 4.0纠正了这个错误.
这不是一个真正的问题,该物业仍然可用.只需在代码中设置它:
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
linkLabel1.TabStop = false;
}
// etc..
}
Run Code Online (Sandbox Code Playgroud)
请注意,该属性对于IntelliSense也是隐藏的,因此不要惊讶于您没有得到帮助.