我有一个对话框,在文本框/ etc的标签上带有许多Alt-Letter快捷方式。该对话框可以以可编辑或只读模式显示数据。如果对话框处于只读模式,我已经收到了隐藏快捷方式下划线的请求。除了在运行时(ugh)编辑标签文本外,还有什么方法可以删除它们?

如果您不知道alt-字母快捷方式指的是什么,请参阅this问题。

最佳答案

您可以仅迭代控件并删除与号。例如:

public partial class dlgSample : Form {
    public dlgSample(bool isReadOnly) {
        InitializeComponent();
        if (isReadOnly) ZapMnemonics(this.Controls);
    }

    private void ZapMnemonics(Control.ControlCollection ctls) {
        foreach (Control ctl in ctls) {
            if (ctl is Label || ctl is Button) ctl.Text = ctl.Text.Replace("&", "");
            ZapMnemonics(ctl.Controls);
        }
    }
}

10-08 02:39