微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在winform c#中禁用按钮时将焦点设置在按钮上?

如何解决如何在winform c#中禁用按钮时将焦点设置在按钮上?

我想在窗体应用程序中禁用按钮时在按钮中设置焦点。

有什么办法可以实现这个目标吗?

背景:

我正在制作一个可供盲人使用的应用程序,因此当按钮启用时,焦点屏幕阅读器将读取按钮内容,但是当按钮被禁用时,由于按钮的原因,屏幕阅读器无法读取不能专注于禁用模式

解决方法

您可以尝试通过以下代码添加和删除点击事件,而不是在 C# 中启用和禁用按钮。

移除点击事件

button.Click -= button_Click;

添加点击事件

button.Click += button_Click;

作为参考,您可以参考以下链接。

How to subscribe to and unsubscribe from events (C# Programming Guide)

,

您可以创建自定义控件并在自定义控件中创建一个属性。使用该属性检查 OnClick 是否需要触发。

例如:

   public class buttonReadonly: Button
   {
       private bool _isReadOnly = false;

       public bool isReadOnly
       {
           get
           {
               return _isReadOnly;
           }
           set
           {
               _isReadOnly = value;
           }
       }

       protected override void OnClick(EventArgs e)
       {
           if (!isReadOnly)
           {
               base.OnClick(e);
           }
       }
       
   }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。