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


103

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

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

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

Ответы:


202

Два пути:

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

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

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

    myLabel.UseMnemonic = false;
    myLabel.Text = "Text&Text";
    

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



0

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


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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.