繁体   English   中英

Windows.Forms助记符不起作用

[英]Windows.Forms Mnemonics don't work

我和这个人差不多有一个问题,但是他的职位是2岁,所以我想我可以再开一个。

在程序中,我使用标签,并且发现标签上的助记符会按Tab键顺序触发下一个控件的enter事件 因此实现了clickenter方法。 但这是问题所在。 我创建了一个测试程序。 该程序保留两个标签,一个按钮和一个文本框。

测试程序布局

测试程序选项卡顺序

第二个标签只是控制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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM