Введите символ «&» в текстовую метку в Windows Forms?

103

Как ввести специальные символы Labelв C # (Windows Forms)?

Если вы попытаетесь написать «&» на ярлыке, вместо этого вы получите нечто вроде подчеркивания.

Так что же в C # эквивалент «&»? ("\ &" явно не работает).

Spectraljump
источник

Ответы:

202

Два пути:

  • Избавьтесь от него с помощью другого амперсанда ( &&).

  • Установите UseMnemonicдля этого ярлыка значение false. Это приводит к тому, что все амперсанды в тексте воспринимаются буквально, поэтому вам не нужно их удваивать. Однако вы потеряете подчеркивание и получите доступ к ключевым функциям.

    Вы можете установить значение либо в дизайнере, либо в коде:

    myLabel.UseMnemonic = false;
    myLabel.Text = "Text&Text";
    
BoltClock
источник
1
Я уже знал (и использовал) &&узор, но UseMnemonicникогда раньше не видел. Итак, +1 за это новое просветление.
Оливер
2
Это канонический ответ. Дубликаты этого вопроса включают stackoverflow.com/questions/4324310 , stackoverflow.com/questions/7737532 , stackoverflow.com/questions/9100607 и stackoverflow.com/questions/4324310 .
Питер Мортенсен
1
Поскольку ToolStripStatusLabelу меня нет этого свойства, если я хочу использовать это в StatusStrip, должен ли я сбежать от него с помощью другого амперсанда?
AdamMc331
2
@ McAdam331: Я так считаю.
BoltClock
1
@BoltClock спасибо. Это было достаточно легко сделать, я просто использовал String.Replace("&", "&&")всякий раз, когда устанавливал текст, поэтому я мог избежать амперсанда, не изменяя сам объект и не испортив его отображение в другом месте.
AdamMc331
8

Вы можете убежать &, добавив его два раза, чтобы попробовать &&.

Эйвинд Братен
источник
0

Я не знаю, как использовать "&" в дизайнере, но в коде вы можете использовать "&&" для отображения одного "&"

басти
источник
5
«&&» отлично работает в дизайнере. Просто введите его там, где вы меняете текст.
Spectraljump
-4

Попробуй это:

((char)0x26).ToString()
Адель Эль Биари
источник