[英]Windows.Forms Mnemonics don't work
我和这个人差不多有一个问题,但是他的职位是2岁,所以我想我可以再开一个。
在程序中,我使用标签,并且发现标签上的助记符会按Tab键顺序触发下一个控件的enter
事件 。 因此实现了click
并enter
方法。 但这是问题所在。 我创建了一个测试程序。 该程序保留两个标签,一个按钮和一个文本框。
第二个标签只是控制enter
事件是否被触发。 当我按ALT
,下划线看起来很好,但是当我按第二个键(对于Reset
)时,什么也没发生。 此外,如果出现下划线并且再次按下ALT
键,他不会消失,并且button
完全忽略是否按下了ALT
。 我使用VisualStudio 2013移至另一台PC,但是得到了相同的结果。 我下载了VisualStudio 2017,尝试创建新程序=>也不起作用。
英语不是我最了解的语言,所以很高兴在我写错东西时给我提示。 我希望有一个人可以帮助我。
Form1.cs的
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void reset_Click(object sender, EventArgs e)
{
textBox.Text = "";
}
private void button_Click(object sender, EventArgs e)
{
textBox.Text = "Button";
}
private void nothing_Enter(object sender, EventArgs e)
{
textBox.Text = "nothing";
}
}
}
Form1.Designer.cs
this.reset.Click += new System.EventHandler(this.reset_Click);
this.button.Click += new System.EventHandler(this.button_Click);
this.nothing.Enter += new System.EventHandler(this.nothing_Enter);
当您在标签上使用助记符时,焦点将转到具有HIGHER选项卡索引的表单上的下一个可选对象(它不会像Tab那样环绕到下一个可选控件)。 由于默认情况下标签是不可选的-重置标签后您没有可选控件-因此似乎什么也没有发生。
如果您添加另一个具有较高选项卡索引的可选控件(例如,将选项卡索引值设置为4的文本框),那么您会发现按Alt-r将按预期转到该控件。
如果要使标签变为可选择状态,则可以如此处答案所示创建派生类: 使标签参与控件制表符 -如果将“ nothing”标签设为 SelectableLabel-然后按Alt-r将导致焦点移动到那个标签。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.