无法在C#中的按钮文本中显示“ &&”

Tom*_*lex 2 c# button visual-studio winforms

我想显示&&Windows窗体应用程序中按钮的文本&,但是显示的按钮仅显示具有单个字符的文本。

// this is how the button is declared and formatted
Button si = new Button();
si.Width = 25;
si.Height = 25;
this.Controls.Add(si);
si.bringToFront();
si.Text = "&&";
si.Font = new Font("Arial", 4, FontStyle.Regular) // as you can see, I made the font so small, in order to make sure the text fits the size of the button
si.Top = 10;
si.Left = 10;
Run Code Online (Sandbox Code Playgroud)

当我创建一个MessageBox时,它告诉button.Text中包含什么文本,它将显示&&(所需结果)。但是,在Windows窗体上找到的按钮仅包含一个字符:&

我已经尝试过的一些方法如下所示:

// 1
si.Text = "&" + "&"; 

// 2
char c = (char)38;
si.Text = c.ToString() + c.ToString();

// 3
si.Text = "&" + (char)38;
Run Code Online (Sandbox Code Playgroud)

我已经尝试过增大按钮的大小,但是仍然无法正常工作,字体不是问题,在这种情况下,可以肯定的是,文本适合按钮的大小。我认为值得一提的是,我尝试给按钮文本提供类似&x (si.Text = "&x")的值,而在按钮文本中唯一可以找到的字符是x

Kob*_*uek 7

您可以通过将按钮的UseMnemonic属性设置为来解决此问题false

UseMnemonic属性获取或设置一个值,该值指示是否&将以&符号开头的第一个字符用作控件的助记键。因此,将其设置为false可以使您使用&字符而不逃避其后的字符。

供进一步阅读

  • @KobyDouek-我同意这很简单,但不清楚。我只是以设计使用的方式使用投票系统。我觉得目前的答案不是一个好答案。 (2认同)

The*_*aot 5

默认情况下UseMnemonic处于启用状态,这允许您设置用作快捷方式的键。键设置为文本中“&”之后的任何字符(用户可以按Alt + Key进行交互)。

发生的是一个“&”转义另一个“&”,因此它不被视为快捷键(助记键)。

如果不想禁用它们(例如,您仍然想要设置快捷方式),可以通过将文本设置为“ &&&&”来使其显示两个“&”。

看到:

转义符符号演示