谁能帮我说一下思路啊   小弟刚接触C#   实在是无从下手啊~!~!不胜感激啊~!

解决方案 »

  1.   

    c++中通过 模板方法模式 实现通用的权限控制,此C++只是示例,非完整可运行的代码。可按此思路public class CRightBase

     protected  Bool bAdd,bEdit,bDel,bPrint,bFind; public  CRightBase(string UserID,string FunName)
      { 
         //构造函数中,从数据库中读取当前用户相应功能的权限数据
          //rs.open("select Add,Edit,Del,Print,Find from tb_Right where           //UserID='" & UserID & "AND Function ='" & FunName &"'",Connection)
         //bAdd=rs.Fields("Add")
         //bEdit=rs.Fields("Edit")
         //bDel=rs.Fields("Del")
         //bPrint=rs.Fields("Print")
          //bFind=rs.Fields("Find")      }
      Protected void Add()
       { 
          if (bAdd) 
            DoAdd(); 
          else
            AfxMessageBox("你没有" & FunName & "的增加权限");     }
      virtual void DoAdd() //可被子类重载
       {
         
       }  Protected void Edit()
         {
              if(bEdit)
                DoAdd();
              else
               AfxMessageBox("你没有" & FunName & "的编辑权限");     }
      Virtual void DoEdit()//可被子类重载
        {
        }}//多个功能窗口或对话框继承此类,重载虚函数public class MyForm:public CRithgBas: public CDialog
    {
       public void MyForm ()
        { 
          InitButton();//初始货按纽过程
        }
        protected void InitButton()
         {
            //以基类的权限变量初始化按纽
           btnAdd.WinddowEnable(bAdd);
           //.....     }
       public void Override DoAdd()
       {  
         //进行实际新增操作,增加用户自己的代码。
       }    Public void Override DoEdit()
       {
          //进行实际的编辑操作   }
        btnAdd_Click()//增加菜单或按纽事件过程
        { 
           Add();//调用基类的ADD方法。进面调用DoAdd().    }
        
        btnEdit_Click()//增加事件过程
         {       Edit();//调用基类方法,进面调用DoEdit().     }
    }