无法在C#

时间:2019-06-02 07:24:43

标签: c# visual-studio winforms button

我想在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;

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

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

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

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

// 3
si.Text = "&" + (char)38;

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

2 个答案:

答案 0 :(得分:7)

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

UseMnemonic属性获取或设置一个值,该值指示是否将前面跟符号(&)的第一个字符用作控件的助记键。因此,将其设置为false将使您可以使用&字符而不会转义其后的字符。

For further reading

答案 1 :(得分:5)

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

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

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

请参阅:

Escape ampersand demo