Когда кнопка сфокусирована нажатием клавиши Tab, на появляется прямоугольник. Даже если для свойства TabStop кнопки установлено значение false, при нажатии кнопки с помощью мыши появляется прямоугольник. Возможно ли, чтобы не отображал прямоугольник? Пожалуйста помоги. С уважением.Проблема в кнопке (.Net 2008, Framework 3.5)
ответ
Этот прямоугольник, который появляется на вашей кнопке, называется «прямоугольником фокусировки». Он указывает, какой элемент управления в форме имеет фокус ввода.
Объяснение проблемы, с которой вы столкнулись, заключается в том, что даже если кнопка не является табуляцией, она все равно становится выбранной, когда ее нажимают мышью, и поэтому прямоугольник фокусировки по-прежнему появляется , Свойство TabStop
управляет только тем, может ли элемент управления получать фокус с помощью клавиши Tab, но не может ли он выбираться пользователем.
Прямоугольник фокусировки полезен для указания пользователю, у которого есть фокус. Нажатие кнопки Введите или Пробел клавиши с выбранной кнопкой заставят кнопку «нажать». Без прямоугольника фокуса пользователям клавиатуры может быть сложно перемещаться по вашему приложению.
Если вы просто хотите, чтобы предотвратить кнопку от получения фокуса на всех (и, таким образом, предотвратить прямоугольник фокуса от появления), вы можете установить его свойство Enabled
в False
. Конечно, это также не позволит пользователю нажать на кнопку.
Если вы хотите, чтобы кнопка оставалась кликабельной, но не позволяла рисовать прямоугольник, когда у него есть фокус (за счет удобства использования вашей программы, я могу предостеречь), вам нужно будет создать свой собственный пользовательский элемент управления, который происходит из существующий Button
управление. В вашем контроле вы можете переопределить ShowFocusCues
property (который равен True
по умолчанию на элементе управления Button
), чтобы вернуть False
. Например:
public class NoFocusButton : Button
{
protected override bool ShowFocusCues
{
get
{
return false;
}
}
}
В качестве альтернативы, вы можете переопределить OnPaint
события в производной кнопке управления. Это позволит вам полностью контролировать способ рисования вашей кнопки (включая удаление прямоугольника фокуса), который поставляется с таким же количеством рисков, что и вознаграждение. См. this answer to another question для получения дополнительной информации по этому маршруту.
class CustomButton : System.Windows.Forms.Button { private bool _DisplayFocusCues = true; protected override bool ShowFocusCues { get { return _DisplayFocusCues; } } public bool DisplayFocusCues { get { return _DisplayFocusCues; } set { _DisplayFocusCues = value; } } }
С помощью этого класса вы также можете установить DisplayFocusCues во время разработки.
- 1. 3.5 .Net Framework криптографическую Проблема
- 2. проблема с ajax при обновлении .net Framework 2.0 to .net framework 3.5 из VS 2008
- 3. .NET Framework 3.5 расположение
- 4. OleDbPermission в .NET Framework 3.5
- 5. проблема установки .net 3.5
- 6. .Net Framework 3.5 необходим для установки моего проекта VB 2008?
- 7. Проект установки Visual Studio 2008 - Включить .NET Framework 3.5
- 8. Entity Framework Tools для VS 2008 RTM (.net 3.5 sp1)
- 9. Является ли SSIS 2008 совместимым с .Net framework 3.5
- 10. Производительность Связанные функции для переноса из .net 2003 Framework 1.1 в .net 2008 framework 3.5?
- 11. Включает ли .NET Framework 3.5 SP1 3.5?
- 12. .NET Framework 3.5 SP1 для Window Server 2008 R2
- 13. .NET Framework 3.5 Исходный код
- 14. 3.5 VS 4.0 .NET Framework
- 15. Использование возможностей .NET Framework 3.5 в .Net framework 2.0
- 16. не может установить .NET Framework 3.5
- 17. SSCLI для .Net Framework 3.5
- 18. Как требовать .NET 3.5 framework?
- 19. Microsoft .Net framework 3.5 Сбой установки SP1
- 20. .NET 3.5 SP1 и ADo.NET Entity Framework
- 21. Visual Studio 2010 .NET framework 3.5 недоступен
- 22. Почему приложение Windows требует .Net 3.5 framework
- 23. Включает ли .Net Framework 4.0 Installer .Net Framework 3.5?
- 24. Требуется ли .net framework 3.5 для установки .net framework 4.0?
- 25. Что нового в .Net framework 3.5?
- 26. Недавно объясненные концепции в .net Framework 3.5
- 27. OnPaint в winform - .NET Compact Framework 3.5
- 28. DataGridView в .NET Compact Framework 3.5
- 29. Ошибка при установке среды .NET 3.5 поверх Windows Server 2008
- 30. .NET Mobile 3.5 медленное создание мобильного приложения в VS 2008
Большое спасибо. Основываясь на том, что сказал, я опубликовал свое решение. – priyamtheone