我有一个Windows窗体应用程序,还有UserControl,它具有一些组框和一些按钮,这些按钮应根据用户角色启用或禁用,例如:
this.btnEditArchive.Enabled = (ActiveUser.Instance.role == DConstants.kAdmin || ActiveUser.Instance.role == DConstants.kSuperAdmin);
这放置在_Load事件中。现在有时候当我在页面之间切换时 这些按钮看起来没有被禁用。但是当我尝试触摸它们时,便会被禁用。似乎用户界面以某种方式未正确绘制。如何解决这个问题?可能是什么原因造成的?
答案 0 :(得分:1)
这可能是错误的,但是根据this,_Load
事件仅在第一次调用Form时发生一次。也许将您的代码放入_Activated
事件中会成功吗?
编辑
我对答案是什么感到困惑,但是原理是一样的:_Load
事件仅在第一次调用时发生一次。因此,如果您需要每次在它们之间进行切换时都要进行更新,请将您的代码放入_VisibleChanged
事件中。
答案 1 :(得分:0)
我不清楚,但是尝试一下
this.Refresh();