Windows窗体上的按钮有时不会被禁用

时间:2018-12-26 12:48:37

标签: c# winforms button user-controls

我有一个Windows窗体应用程序,还有UserControl,它具有一些组框和一些按钮,这些按钮应根据用户角色启用或禁用,例如:

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

这放置在_Load事件中。现在有时候当我在页面之间切换时 这些按钮看起来没有被禁用。但是当我尝试触摸它们时,便会被禁用。似乎用户界面以某种方式未正确绘制。如何解决这个问题?可能是什么原因造成的?

2 个答案:

答案 0 :(得分:1)

这可能是错误的,但是根据this_Load事件仅在第一次调用Form时发生一次。也许将您的代码放入_Activated事件中会成功吗?

编辑

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

答案 1 :(得分:0)

我不清楚,但是尝试一下

this.Refresh();