我正在尝试在按钮上启用UseMnemonic,以便为我显示amprasand(&)。除非我将flatStyle按钮设置为System(所有其他平面样式都很好),否则工作正常。
使用相同的flatStyle可以很好地处理标签,这似乎是按钮特有的。
有没有人知道为什么会发生这种情况或背后的方式?
目前我唯一能想到的就是忽略UseMnemonic并添加额外的& amp;如果找到了。
另外一些奇怪的是,有时候&被替换为下划线(_)但我无法随意重现...
远非最有效的代码,而是我一起来测试这个:
public Form1()
{
InitializeComponent();
this.label1.Text = "hello & goodbye";
this.button1.Text = "1&2";
this.label3.Text = this.button1.UseMnemonic.ToString();
this.label4.Text = this.button1.FlatStyle.ToString();
}
private void button1_Click(object sender, EventArgs e)
{
switch (count)
{
case 0:
case 1:
this.label1.UseMnemonic = this.button1.UseMnemonic = false;
this.label1.FlatStyle = this.button1.FlatStyle = FlatStyle.System;
count = 2;
break;
case 2:
this.label1.UseMnemonic = this.button1.UseMnemonic = false;
this.label1.FlatStyle = this.button1.FlatStyle = FlatStyle.Flat;
count = 3;
break;
case 3:
this.label1.UseMnemonic = this.button1.UseMnemonic = false;
this.label1.FlatStyle = this.button1.FlatStyle = FlatStyle.Popup;
count = 4;
break;
case 4:
this.label1.UseMnemonic = this.button1.UseMnemonic = false;
this.label1.FlatStyle = this.button1.FlatStyle = FlatStyle.Standard;
count = 5;
break;
case 5:
this.label1.UseMnemonic = this.button1.UseMnemonic = true;
this.label1.FlatStyle = this.button1.FlatStyle = FlatStyle.System;
count = 6;
break;
case 6:
this.label1.UseMnemonic = this.button1.UseMnemonic = true;
this.label1.FlatStyle = this.button1.FlatStyle = FlatStyle.Flat;
count = 7;
break;
case 7:
this.label1.UseMnemonic = this.button1.UseMnemonic = true;
this.label1.FlatStyle = this.button1.FlatStyle = FlatStyle.Popup;
count = 8;
break;
case 8:
this.label1.UseMnemonic = this.button1.UseMnemonic = true;
this.label1.FlatStyle = this.button1.FlatStyle = FlatStyle.Standard;
count = 1;
break;
}
this.label3.Text = this.button1.UseMnemonic.ToString();
this.label4.Text = this.button1.FlatStyle.ToString();
答案 0 :(得分:1)
不确定我是否跟进。但要让“&”出现,你必须加倍。修正:
this.button1.Text = "1&&2";