您的位置:首页 > 编程语言 > C#

C#遍历菜单并设置权限

2010-11-22 21:13 441 查看
转载自 http://hi.baidu.com/grounder/blog/item/ad0755ca7121d815bf09e624.html

一、加入数据
1、创建数据表

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Data;
using DBClassLib;namespace ERP
{
public class SetMenu
{
private MenuStrip msMain;        /// <summary>
/// 构造函数
/// </summary>
/// <param name="mMain"></param>
public SetMenu(MenuStrip mMain)
{
msMain = mMain;
msMain.Visible = true;

}        /// <summary>
/// 设置菜单权限
/// </summary>
public void SetMenuPower()
{
string strSql;
int mItemCount, i, j;
mItemCount = msMain.Items.Count;
strSql = "SELECT FSFormNo,FGfaIsOk FROM t_GroupFormsAuthority WHERE FStatus='1' AND FUGroupNo='" + Global.userInfo[2] + "'";
DBOperator db = DBOperator.GetDBOperator(Global.strConnection);
DataTable dt = new DataTable();
db.Open();
dt = db.GetDataTable(strSql);
if (dt.Rows.Count > 0)
{
for (i = 0; i < mItemCount; i++)
{
for (j = 0; j < dt.Rows.Count; j++)
{
if ((msMain.Items[i].Name.ToString() == dt.Rows[j]["FSFormNo"].ToString()) && (dt.Rows[j][1].ToString() == "1"))
{
SetMenuItemUsability(msMain.Items[i], true);
GetSubMenu(dt,(ToolStripMenuItem) msMain.Items[i]);
break;
}
else
{
SetMenuItemUsability(msMain.Items[i], false);
}
}
}
}
else
{
msMain.Visible = false;
}            db.Close();        }        private void GetSubMenu(DataTable dt, ToolStripMenuItem tsmItem)//ToolStripItem mItems)
{
//ToolStripMenuItem tsmItem=new ToolStripMenuItem() ;
int i,j,mItemsCount;
mItemsCount = tsmItem.DropDownItems.Count;            if (mItemsCount > 0)
{
for (i = 0; i < mItemsCount; i++)
{
for (j = 0; j < dt.Rows.Count; j++)
{
if (tsmItem.DropDownItems[i].Name == dt.Rows[j][0].ToString() && dt.Rows[j][1].ToString() == "1")
{
SetMenuItemUsability(tsmItem.DropDownItems[i], true);
break;                        }
else
{
SetMenuItemUsability(tsmItem.DropDownItems[i], false);
}
}
}
}
}        /// <summary>
/// 设置菜单可用性


3、主窗口调用:

SetMenu sm = new SetMenu(menuMain);
sm.SetMenuPower();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: