Entrez le symbole «&» dans une étiquette de texte dans Windows Forms?

103

Comment entrer des caractères spéciaux dans un Labelen C # (Windows Forms)?

Si vous essayez d'écrire un "&" dans une étiquette, vous obtiendrez une sorte de trait de soulignement à la place.

Alors, quel est l'équivalent C # de "&"? ("\ &" ne fonctionne évidemment pas).

Saut spectral
la source

Réponses:

202

Deux manières:

  • Échappez-le avec une autre esperluette ( &&).

  • Définissez UseMnemoniccette étiquette sur false. Cela fait que toutes les esperluettes du texte sont prises à la lettre, vous n'avez donc pas besoin de doubler l'une d'entre elles. Vous perdrez le soulignement et accéderez aux fonctionnalités clés.

    Vous pouvez définir la valeur dans le concepteur ou dans le code:

    myLabel.UseMnemonic = false;
    myLabel.Text = "Text&Text";
BoltClock
la source
1
Je connaissais déjà (et utilisais) le &&modèle mais je n'avais UseMnemonicjamais vu auparavant. Donc +1 pour ce nouvel éclairant.
Oliver
2
Telle est la réponse canonique. Les doublons de cette question incluent stackoverflow.com/questions/4324310 , stackoverflow.com/questions/7737532 , stackoverflow.com/questions/9100607 et stackoverflow.com/questions/4324310 .
Peter Mortensen
1
Puisque ToolStripStatusLabeln'a pas cette propriété, si je veux l'utiliser sur un StatusStrip, suis-je obligé de l'échapper avec une autre esperluette?
AdamMc331
2
@ McAdam331: Je pense que oui.
BoltClock
1
@BoltClock merci. C'était assez facile à faire, je l'ai juste utilisé String.Replace("&", "&&")chaque fois que je définissais le texte, afin que je puisse échapper à l'esperluette sans muter mon objet lui-même et bousiller la façon dont il est affiché ailleurs.
AdamMc331
8

Vous pouvez vous échapper et en l'ajoutant deux fois, pour essayer &&.

Øyvind Bråthen
la source
0

Je ne sais pas comment utiliser «&» dans le concepteur, mais dans le code, vous pouvez utiliser «&&» pour afficher un «&»

Basti
la source
5
"&&" fonctionne très bien dans le concepteur. Saisissez-le simplement là où vous modifiez le texte.
Spectraljump
-4

Essaye ça:

((char)0x26).ToString()
Adel El Biari
la source