我在我的一个Win Form应用程序中使用了DevExpress XtraTab Control,但是我想限制基于用户权限类别访问标签页,我试着按照以下方式进行操作,它在正确的时候给我提供了消息选择标签页但如果用户未获得授权,则不会将用户重定向到指定的标签页,但仍允许未经授权的用户查看标签页。
private void tabInquiryManagement_SelectedPageChanging(object sender, DevExpress.XtraTab.TabPageChangingEventArgs e)
{
if(e.Page==xtraTabPage4){
if(InfoPCMS.user.checkFunctionAuthentication("34")==false){
XtraMessageBox.Show(InfoPCMS.message.GET_NOT_AUTHORIZED_ERROR(), "Error");
tabInquiryManagement.SelectedTabPage = xtraTabPage1;
}
}
}
// checkFunctionAuthentication根据授权返回一个布尔值(如果未经授权则返回false)
请给我一个解决方案
答案 0 :(得分:1)
您应该在显示消息框后添加e.Cancel = true;
。
实际上,如果你需要取消事件,你应该在DevExpress组件的任何* Changing事件处理程序中使用它。
还要考虑这种方法:如果用户无权查看某些标签页内容 - 也许最好通过设置该页面PageVisible = false
的属性而不是将其重定向到某个位置来隐藏此页面?