如何在 winform c# 中禁用按钮时将焦点设置在按钮上?
How to set focus on button while button is disabled in winform c#?
我想在 windows 表单应用程序中禁用按钮时将焦点设置在按钮中。
有什么方法可以实现这个目标吗?
背景:
我正在开发一个可供盲人使用的应用程序,因此当按钮启用时,在焦点屏幕上 reader 将读取按钮内容,但当按钮被禁用时,则无法阅读screen reader 因为按钮无法聚焦 disabled mode
您可以尝试通过以下代码添加和删除点击事件,而不是在 C# 中启用和禁用按钮。
用于移除点击事件
button.Click -= button_Click;
用于添加点击事件
button.Click += button_Click;
作为参考,可以参考下面link.
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);
}
}
}
我想在 windows 表单应用程序中禁用按钮时将焦点设置在按钮中。
有什么方法可以实现这个目标吗?
背景:
我正在开发一个可供盲人使用的应用程序,因此当按钮启用时,在焦点屏幕上 reader 将读取按钮内容,但当按钮被禁用时,则无法阅读screen reader 因为按钮无法聚焦 disabled mode
您可以尝试通过以下代码添加和删除点击事件,而不是在 C# 中启用和禁用按钮。
用于移除点击事件
button.Click -= button_Click;
用于添加点击事件
button.Click += button_Click;
作为参考,可以参考下面link.
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);
}
}
}