windows 表单上的按钮有时不会被禁用
Buttons sometimes doesn't get disabled on windows form
我有一个 windows 表单应用程序,我有一个 UserControl,它有一些组框和一些应该根据用户角色启用或禁用的按钮,如下所示:
this.btnEditArchive.Enabled = (ActiveUser.Instance.role == DConstants.kAdmin || ActiveUser.Instance.role == DConstants.kSuperAdmin);
这放在_Load 事件中。现在有时当我在页面之间切换时,
这些按钮看起来没有被禁用。但是当我试图去触摸它们时,它们就变成了残疾。似乎 UI 以某种方式未正确绘制。如何解决这个问题?这可能是什么原因?
我不是很明白,试试这个
this.Refresh();
这可能是错误的,但根据 this,_Load
事件只发生一次,即第一次调用表单时。也许将您的代码放入 _Activated
事件中就可以解决问题?
编辑
我对答案是什么感到困惑,但原理是一样的:_Load
事件只发生一次,即第一次调用时。因此,如果您需要在它们之间切换时更新某些内容,请将您的代码放入 _VisibleChanged
事件。
我有一个 windows 表单应用程序,我有一个 UserControl,它有一些组框和一些应该根据用户角色启用或禁用的按钮,如下所示:
this.btnEditArchive.Enabled = (ActiveUser.Instance.role == DConstants.kAdmin || ActiveUser.Instance.role == DConstants.kSuperAdmin);
这放在_Load 事件中。现在有时当我在页面之间切换时, 这些按钮看起来没有被禁用。但是当我试图去触摸它们时,它们就变成了残疾。似乎 UI 以某种方式未正确绘制。如何解决这个问题?这可能是什么原因?
我不是很明白,试试这个
this.Refresh();
这可能是错误的,但根据 this,_Load
事件只发生一次,即第一次调用表单时。也许将您的代码放入 _Activated
事件中就可以解决问题?
编辑
我对答案是什么感到困惑,但原理是一样的:_Load
事件只发生一次,即第一次调用时。因此,如果您需要在它们之间切换时更新某些内容,请将您的代码放入 _VisibleChanged
事件。