В моем приложении C# Winforms у меня есть несколько меток управления ярлыками (например: & Name). Мы используем программу чтения JAWS. В Label.Text всегда указывается «& Название». Есть ли способ получить текст ярлыка без горячих клавиш ('&')? Я не могу заменить «&» на String.empty, потому что в нем есть несколько ярлыков с фактическим «&».Получение текста метки без горячей клавиши ('&') в C#
0
A
ответ
0
Можете привести пример, где '&' не требуется?
TrimStart удалит символы образуют начало строки https://msdn.microsoft.com/en-us/library/system.string.trimstart(v=vs.110).aspx
0
Как я уже говорил в моем предыдущем комментарии, это проблема доступности. Следующий пользовательский номер Label
предоставляет новое свойство string
AccessibleValue
, которое может быть установлено в тексте, который PropertyObject вернет в качестве значения.
Я не знаю, работает ли это с устройством чтения JAWS, но оно отображало пользовательское значение при использовании инструмента Inspect.
public class AccessibleLabel : Label
{
protected override AccessibleObject CreateAccessibilityInstance()
{
return new LabelAccessibleObject(this);
}
public string AccessibleValue { get; set; }
private class LabelAccessibleObject : ControlAccessibleObject
{
private AccessibleLabel myowner;
public LabelAccessibleObject(AccessibleLabel owner)
: base(owner)
{
this.myowner = owner;
}
public override AccessibleRole Role
{
get
{
AccessibleRole accessibleRole = base.Owner.AccessibleRole;
if (accessibleRole != AccessibleRole.Default)
{
return accessibleRole;
}
return AccessibleRole.StaticText;
}
}
public override string Value
{
get
{
if (string.IsNullOrEmpty(myowner.AccessibleValue))
{
return base.Value;
}
else
{
return myowner.AccessibleValue;
}
}
set
{
base.Value = value;
}
}
}
}
0
Легкий способ заключается в использовании AccessibleObject.Name собственности.
Ex: String text = label1.AccessibleObject.Name;
Смежные вопросы
- 1. Подчеркнутое письмо в форме формы победителя без добавления горячей клавиши
- 2. Добавление горячей клавиши F5 в C#
- 3. Выбор горячей клавиши
- 4. C# создание горячей клавиши, которая запускает функцию
- 5. Захват горячей клавиши в браузерах
- 6. Visual Studio 2015 код помощи без горячей клавиши
- 7. Выполнение глобальной горячей клавиши Nodejs
- 8. Перерыв при нажатии горячей клавиши
- 9. Комбинации клавиш для горячей клавиши
- 10. Получение окна переднего плана при нажатии горячей клавиши
- 11. Получение значения текстового текста без нажатия любой клавиши в android?
- 12. C# Как остановить повторное действие глобальной горячей клавиши?
- 13. AHK Ветвление KeyWaits в середине горячей клавиши
- 14. Как заставить скрипт запускаться автоматически, без определения горячей клавиши?
- 15. Установка горячей клавиши в моем приложении asp.net
- 16. захват ключа с помощью глобальной горячей клавиши в C#
- 17. Программирование горячей клавиши в C# с Visual Studio 2010
- 18. python-keybinder и правая строка горячей клавиши
- 19. Разница между регистрацией горячей клавиши и простое нажатие клавиши
- 20. batchfile для ввода горячей клавиши: CTRL Printscreen
- 21. Использование горячей клавиши для отправки HTML-формы?
- 22. Как прервать цикл с помощью горячей клавиши
- 23. Получение адрес метки в C
- 24. Получение текста из UITextField в UIAlertView для установки текста метки
- 25. Изменение текста метки CLI C++
- 26. Получение метки вопроса, напечатанной при написании текста
- 27. Xpath - получение текста метки, где вход проверен
- 28. Как скопировать текст из внешнего приложения с помощью горячей клавиши?
- 29. .NET Чтение текста с метки без автоматизации
- 30. Отмена регистрации горячей клавиши Alt-Tab в Windows 7
И эти ярлыки должны иметь двойной &&. Подсказка regexp. – Steve
Возможный дубликат [Как удалить символы ускорителя из строки?] (Http://stackoverflow.com/questions/3700612/how-can-i-remove-accelerator-characters-from-a-string) –
Это проблема доступности. Я предполагаю, что на основе вашего описания читатель экрана считывает символ амперсанда. То, что представляет читатель, находится под его контролем. Элементы управления WinForms поддерживают устаревшую модель Accessibility.IAccessible. Вы можете попытаться создать пользовательский ярлык, который, в свою очередь, предоставит настраиваемый объект ControlAccessibleObject, в котором вы переопределите свойство «Значение», чтобы сделать доступным текст без амперсанда. – TnTinMn