Insira o símbolo “&” em um rótulo de texto no Windows Forms?

103

Como alguém inseriria caracteres especiais Labelem C # (Windows Forms)?

Se você tentar escrever um "&" em um rótulo, receberá uma espécie de sublinhado.

Então, qual é o equivalente em C # de "&"? ("\ &" obviamente não funciona).

Spectraljump
fonte

Respostas:

202

Dois caminhos:

  • Faça o escape com outro E comercial ( &&).

  • Defina UseMnemonicpara esse rótulo como false. Isso faz com que todos os "e" comerciais dentro do texto sejam interpretados literalmente, de modo que você não precisa dobrar nenhum deles. Você perderá o sublinhado e os principais recursos de acesso.

    Você pode definir o valor no designer ou no código:

    myLabel.UseMnemonic = false;
    myLabel.Text = "Text&Text";
    
BoltClock
fonte
1
Eu já conhecia (e usava) o &&padrão, mas UseMnemonicnunca vi antes. Então, +1 para este novo esclarecimento.
Oliver
2
Esta é a resposta canônica. As duplicatas para esta pergunta incluem stackoverflow.com/questions/4324310 , stackoverflow.com/questions/7737532 , stackoverflow.com/questions/9100607 e stackoverflow.com/questions/4324310 .
Peter Mortensen
1
Como ToolStripStatusLabelnão tem essa propriedade, se eu quiser usar isso em um StatusStrip, sou forçado a escapar com outro e comercial?
AdamMc331
2
@ McAdam331: Eu acredito que sim.
BoltClock
1
@BoltClock obrigado. Foi fácil de fazer, eu apenas usei String.Replace("&", "&&")sempre que definir o texto, para que eu pudesse escapar do "e" comercial sem alterar o próprio objeto e bagunçar como ele é exibido em outro lugar.
AdamMc331
8

Você pode escapar e adicioná-lo duas vezes, para tentar &&.

Øyvind Bråthen
fonte
0

Não sei como usar '&' no designer, mas no código você pode usar '&&' para mostrar um '&'

Basti
fonte
5
"&&" funciona bem no designer. Basta inseri-lo onde você altera o Texto.
Spectraljump
-4

Experimente isto:

((char)0x26).ToString()
Adel El Biari
fonte