c# - 按钮有时不会在 Windows 窗体上被禁用

标签 c# winforms button user-controls

我有一个 Windows 窗体应用程序,我有一个 UserControl,它有一些组框和一些应该根据用户角色启用或禁用的按钮,如下所示:

this.btnEditArchive.Enabled = (ActiveUser.Instance.role == DConstants.kAdmin || ActiveUser.Instance.role == DConstants.kSuperAdmin);

这放在_Load 事件中。现在有时当我在页面之间切换时, 这些按钮看起来没有被禁用。但是当我试图去触摸它们时,它们就变成了残疾。似乎 UI 以某种方式未正确绘制。如何解决这个问题?这可能是什么原因?

最佳答案

这可能是错误的,但根据this , _Load 事件只发生一次,即第一次调用 Form 时。也许将您的代码放入 _Activated 事件中就可以解决问题?

编辑

我对答案是什么感到困惑,但原理是一样的:_Load 事件仅在第一次调用时发生一次。因此,如果您需要在它们之间切换时更新某些内容,请将您的代码放入 _VisibleChanged 事件中。

关于c# - 按钮有时不会在 Windows 窗体上被禁用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53932348/

相关文章:

c# - 我们可以通过c#代码调用Azure API Management而不使用SAS Token吗

vb.net - 将 textchange 事件设置为仅在用户而非程序实际输入文本时触发

c# - 如何通过单击按钮更改所有标签前景色

c# - 如何从文本框中仅获取 sql 中的月份和年份值,其中 textmode 属性为月份? ASP.NET C#

c# - C# 中的 C++ API 和 PInvoke

c# - 调用接口(interface)实现的类方法

c# - 如何将水平滚动位置设置为指定值?

c# - 启动画面后主窗口出现在其他窗口后面

java - 如何让按钮出现和消失?Libgdx

使用路径作为附加属性的 WPF 自定义形状按钮模板