在好例子网,分享、交流、成长!
您当前所在位置:首页C# 开发实例桌面应用界面/GUI → C# winform 权限管理系统完整源码下载(含数据库)

C# winform 权限管理系统完整源码下载(含数据库)

桌面应用界面/GUI

下载此实例
  • 开发语言:C#
  • 实例大小:12.63M
  • 下载次数:1355
  • 浏览次数:20317
  • 发布时间:2014-01-24
  • 实例类别:桌面应用界面/GUI
  • 发 布 人:crazycode
  • 所需积分:2
 相关标签: 数据库 winform C# 下载 权限管理

实例介绍

【实例简介】

【实例截图】

【核心代码】

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using IBLL = CodingMouse.CMCSharpSDK.IBLL;
using BLLFactory = CodingMouse.CMCSharpSDK.BLLFactory;
using Model = CodingMouse.CMCSharpSDK.Model;
using Common = CodingMouse.CMCSharpSDK.UI.Common;

namespace CodingMouse.CMCSharpSDK.UI.Forms
{
    /// <summary>
    /// 权限管理界面
    /// </summary>
    public partial class frmRightsManager : Form
    {
        #region Private Members
        MenuStrip _msMain = null;
        /// <summary>
        /// 主界面被管理的菜单对象
        /// </summary>
        internal MenuStrip MsMain
        {
            get { return _msMain; }
            set { _msMain = value; }
        }
        frmMain _frmMain = null;
        /// <summary>
        /// 主界面对象
        /// </summary>
        public frmMain FrmMain
        {
            get { return _frmMain; }
            set { _frmMain = value; }
        }
        /// <summary>
        /// 权限菜单界面管理类对象
        /// </summary>
        Common.RightsMenuUIManager _rmuManager = null;
        /// <summary>
        /// 权限菜单数据管理类对象
        /// </summary>
        Common.RightsMenuDataManager _rmdManager = null;
        Model.Operator _currentOperator = null;
        /// <summary>
        /// 保存当前登录的操作员对象
        /// </summary>
        internal Model.Operator CurrentOperator
        {
            get { return _currentOperator; }
            set { _currentOperator = value; }
        }
        Dictionary<string, Model.Operator> _operatorCollection = null;
        /// <summary>
        /// 当前加载的所有操作员实体集合
        /// </summary>
        internal Dictionary<string, Model.Operator> OperatorCollection
        {
            get { return _operatorCollection; }
            set { _operatorCollection = value; }
        }
        bool _isRelatingChooseCells = true;
        /// <summary>
        /// 是否启用数据视图关联选择
        /// </summary>
        internal bool IsRelatingChooseCells
        {
            get { return _isRelatingChooseCells; }
            set { _isRelatingChooseCells = value; }
        }
        /// <summary>
        /// 是否启用树视图子节点关联选择
        /// </summary>
        bool _isCheckedChildTreeNode = true;
        /// <summary>
        /// 保存上一次被选中的操作员列表行
        /// </summary>
        DataGridViewRow _dgvOldSelectedRow = null;
        /// <summary>
        /// 权限视图可勾选状态
        /// </summary>
        bool _rightsViewIsChecked = false;
        #endregion

        #region Public Methods
        /// <summary>
        /// 带参构造
        /// </summary>
        /// <param name="msMain">主界面待管理的菜单对象</param>
        /// <param name="frmMain">主界面对象</param>
        /// <param name="currentOperator">当前登录操作员对象</param>
        public frmRightsManager(MenuStrip msMain, frmMain frmMain, Model.Operator currentOperator)
        {
            // 构建设计器控件
            InitializeComponent();
            // 保存菜单对象
            MsMain = msMain;
            // 保存主界面对象
            FrmMain = frmMain;
            // 保存当前登录操作员对象
            CurrentOperator = currentOperator;

            // 创建权限菜单界面管理类实例
            _rmuManager = new Common.RightsMenuUIManager();
            // 赋予要操作的对象
            _rmuManager.DgvOperatorList = this.dgvOperatorList;
            _rmuManager.DgvRightsList = this.dgvRightsList;
            _rmuManager.TvRightsView = this.tvRightsView;
            _rmuManager.MsMain = _msMain;
            _rmuManager.RightsManagerUI = this;

            // 创建权限菜单数据管理类实例
            _rmdManager = new Common.RightsMenuDataManager();
        } 
        #endregion

        #region Event Handlers
        /// <summary>
        /// 窗体初始化事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void frmRightsManager_Load(object sender, EventArgs e)
        {
            // 加载操作员列表
            _rmuManager.LoadOperatorList();

            // 默认为分组模式
            tsbtnRightsMode.Text = tsmiGroupMode.Text;
        }

        /// <summary>
        /// 树形视图右键菜单公共点击事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tsmiTreeViewContentMenuItem_Click(object sender, EventArgs e)
        {
            // 保存当前菜单项激发者
            ToolStripMenuItem menuItem = sender as ToolStripMenuItem;
            // 勾选所有结点上的复选框
            if (menuItem == tsmiSelectAll)
            {
                foreach (TreeNode treeNode in this.tvRightsView.Nodes)
                {
                    treeNode.Checked = true;
                    // 禁用树视图重绘
                    tvRightsView.BeginUpdate();
                    // 选中/取消树节点及其子节点勾选状态
                    _rmuManager.CheckOrUnCheckTreeNode(treeNode);
                    // 启用树视图重绘
                    tvRightsView.EndUpdate();
                }
            }
            // 取消所有结点上的复选
            if (menuItem == tsmiCancelAll)
            {
                foreach (TreeNode treeNode in this.tvRightsView.Nodes)
                {
                    treeNode.Checked = false;
                    // 禁用树视图重绘
                    tvRightsView.BeginUpdate();
                    // 选中/取消树节点及其子节点勾选状态
                    _rmuManager.CheckOrUnCheckTreeNode(treeNode);
                    // 启用树视图重绘
                    tvRightsView.EndUpdate();
                }
            }
            // 重新加载账户权限结构树
            if (menuItem == tsmiReload)
            {
                // 如果有选中行
                if (dgvOperatorList.SelectedCells.Count > 0)
                {
                    // 保存当前选中行的操作员名称
                    string operatorName = _dgvOldSelectedRow.Cells["ModelName"].Value.ToString().Trim();
                    // 指定当前编辑的操作员对象
                    Model.Operator editOperator = _operatorCollection[operatorName];

                    // 将数据绑定加载到树形视图
                    _rmuManager.BindDataToTreeView(editOperator.RightsCollection);
                }
            }
            // 将 TreeView 树结点全部展开
            if (menuItem == tsmiExpandAll)
            {
                this.tvRightsView.ExpandAll();
            }
            // 将 TreeView 树结点全部折叠
            if (menuItem == tsmiCollapseAll)
            {
                this.tvRightsView.CollapseAll();
            }
        }

        /// <summary>
        /// [保存更改]工具栏按钮点击事件 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tsbtnSaveAllChanged_Click(object sender, EventArgs e)
        {
            // 提交并结束数据视图的单元格编辑
            dgvRightsList.EndEdit();
            dgvOperatorList.EndEdit();
            
            // 如果有选中单元格
            if (dgvOperatorList.SelectedCells.Count > 0)
            {
                try
                {
                    // 创建业务逻辑层工厂类实例
                    BLLFactory.BLLFactory bllFactory = new BLLFactory.BLLFactory();
                    // 调用工厂类实例方法创建操作员管理类实例
                    IBLL.IOperatorManager operatorManager = bllFactory.BuildOperatorManager();

                    // 保存所有操作员权限信息
                    foreach (Model.Operator tmpOperator in _operatorCollection.Values)
                    {
                        // 保存当前操作员所做的修改
                        operatorManager.ModifyOperator(tmpOperator);
                    }
                    
                    // 给出用户操作提示
                    MessageBox.Show(
                        "权限设置保存成功!",
                        "保存提示",
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Information);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(
                        ex.Message,
                        "保存失败",
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Error);
                }
            }
        }

        /// <summary>
        /// [刷新权限]工具栏按钮点击事件 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tsbtnRefreshRightsList_Click(object sender, EventArgs e)
        {
            // 如果是非超级管理员
            if (_currentOperator.Id != 0)
            {
                // 将数据绑定显示到数据视图
                _rmuManager.BindDataToDataGridView(_currentOperator.RightsCollection);
                // 将数据绑定加载到树形视图
                _rmuManager.BindDataToTreeView(_currentOperator.RightsCollection);
            }
        }

        /// <summary>
        /// [刷新用户]工具栏按钮点击事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tsbtnRefreshOperator_Click(object sender, EventArgs e)
        {
            // 将数据绑定显示到数据视图
            _rmuManager.BindOperatorInfoToDataGridView(_operatorCollection);
        }

        /// <summary>
        /// [关闭窗口]工具栏按钮点击事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tsbtnCloseWindow_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        /// <summary>
        /// 权限列表数据视图单元格启动编辑模式事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dgvRightsList_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
        {
            // 如果是权限状态列且节点不可选则取消勾选事件
            if (dgvRightsList.Columns[e.ColumnIndex].Name == "RightsState" && !_rightsViewIsChecked)
                e.Cancel = true;
        }

        /// <summary>
        /// 权限列表数据视图单元格停止编辑模式事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dgvRightsList_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            // 如果包含操作员信息
            if (dgvOperatorList.SelectedCells.Count > 0)
            {
                // 保存当前选中行的操作员名称
                string operatorName = dgvOperatorList.Rows[dgvOperatorList.SelectedCells[0].RowIndex].Cells["ModelName"].Value.ToString().Trim();
                // 指定当前编辑的操作员对象
                Model.Operator editOperator = _operatorCollection[operatorName];

                // 找到当前编辑的权限项
                Model.Rights currentEditRights = editOperator.RightsCollection[dgvRightsList.Rows[e.RowIndex].Cells["ModelName"].Value.ToString().Trim()];
                // 保存当前修改的权限标题和权限状态到权限集合
                currentEditRights.RightsCaption = Convert.ToString(dgvRightsList.Rows[e.RowIndex].Cells["RightsCaption"].Value);
                currentEditRights.RightsState = Convert.ToBoolean(dgvRightsList.Rows[e.RowIndex].Cells["RightsState"].Value);

                // 将数据绑定加载到树形视图
                _rmuManager.BindDataToTreeView(editOperator.RightsCollection);
            }
        }

        /// <summary>
        /// 操作员列表数据视图单元格停止编辑模式事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dgvOperatorList_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            // 如果包含操作员信息
            if (dgvOperatorList.SelectedCells.Count > 0)
            {
                // 找到当前编辑的操作员项
                Model.Operator currentEidtOperator = _operatorCollection[dgvOperatorList.Rows[e.RowIndex].Cells["ModelName"].Value.ToString().Trim()];
                // 保存当前修改的操作员密码和状态到操作员集合
                currentEidtOperator.Password = Convert.ToString(dgvOperatorList.Rows[e.RowIndex].Cells["Password"].Value);
                currentEidtOperator.State = Convert.ToBoolean(dgvOperatorList.Rows[e.RowIndex].Cells["State"].Value);
            }
        }

        /// <summary>
        /// 权限列表数据视图所选内容更改事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dgvRightsList_SelectionChanged(object sender, EventArgs e)
        {
            // 仅在有选中单元格且启用关联选择时才执行操作
            if (dgvRightsList.SelectedCells.Count > 0 && IsRelatingChooseCells)
            {
                // 遍历所有选中单元格选中所有同级权限项及父项
                for (int i = 0; i < dgvRightsList.SelectedCells.Count; i  )
                {
                    // 且仅在选中[内部名称]和[父级权限]单元格时才执行操作
                    if (dgvRightsList.SelectedCells[i].OwningColumn.Name == "ModelName"
                        || dgvRightsList.SelectedCells[i].OwningColumn.Name == "ParentLevelRightsName")
                    {
                        // 同时选中与选中单元格内容相同的所有[内部名称]和[父级权限]单元格
                        foreach (DataGridViewRow dgvRow in this.dgvRightsList.Rows)
                        {
                            if (dgvRow.Cells["ModelName"].Value == dgvRightsList.SelectedCells[i].Value)
                                dgvRow.Cells["ModelName"].Selected = true;
                            else if (dgvRow.Cells["ParentLevelRightsName"].Value == dgvRightsList.SelectedCells[i].Value)
                                dgvRow.Cells["ParentLevelRightsName"].Selected = true;
                        }
                    }
                }
            }
        }

        /// <summary>
        /// 操作员列表数据视图所选内容更改事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dgvOperatorList_SelectionChanged(object sender, EventArgs e)
        {
            if (dgvOperatorList.SelectedCells.Count > 0
                && dgvOperatorList.Rows[dgvOperatorList.SelectedCells[0].RowIndex] != _dgvOldSelectedRow)
            {
                // 保存当前选中的行
                _dgvOldSelectedRow = dgvOperatorList.Rows[dgvOperatorList.SelectedCells[0].RowIndex];
                // 保存当前选中行的操作员名称
                string operatorName = _dgvOldSelectedRow.Cells["ModelName"].Value.ToString().Trim();
                // 指定当前编辑的操作员对象
                Model.Operator editOperator = _operatorCollection[operatorName];

                // 将数据绑定显示到数据视图
                _rmuManager.BindDataToDataGridView(editOperator.RightsCollection);
                // 将数据绑定加载到树形视图
                _rmuManager.BindDataToTreeView(editOperator.RightsCollection);
            }
        }

        /// <summary>
        /// [权限视图]节点复选前事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tvRightsView_BeforeCheck(object sender, TreeViewCancelEventArgs e)
        {
            // 如果节点不可选则取消勾选事件
            if (!_rightsViewIsChecked)
                e.Cancel = true;
        }

        /// <summary>
        /// 权限树形视图复选框状态更改事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tvRightsView_AfterCheck(object sender, TreeViewEventArgs e)
        {
            // 如果已经启用子节点关联选择
            if (_isCheckedChildTreeNode)
            {
                // 禁用树视图重绘
                tvRightsView.BeginUpdate();
                // 禁用子节点关联选择
                _isCheckedChildTreeNode = false;
                // 选中/取消树节点及其子节点勾选状态
                _rmuManager.CheckOrUnCheckTreeNode(e.Node);
                // 启用子节点关联选择
                _isCheckedChildTreeNode = true;
                // 启用树视图重绘
                tvRightsView.EndUpdate();

                if (dgvOperatorList.SelectedCells.Count > 0)
                {
                    // 保存当前选中行的操作员名称
                    string operatorName = dgvOperatorList.Rows[dgvOperatorList.SelectedCells[0].RowIndex].Cells["ModelName"].Value.ToString().Trim();
                    // 将数据绑定显示到数据视图
                    _rmuManager.BindDataToDataGridView(_operatorCollection[operatorName].RightsCollection);
                }
            }
        }

        /// <summary>
        /// 权限树形视图选定内容更改事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tvRightsView_AfterSelect(object sender, TreeViewEventArgs e)
        {
            // 禁用关联选择
            _isRelatingChooseCells = false;
            // 清除所有单元格选择
            dgvRightsList.ClearSelection();
            // 启用关联选择
            _isRelatingChooseCells = true;

            // 同步数据视图对应项选择
            foreach (DataGridViewRow dgvRow in this.dgvRightsList.Rows)
            {
                if (dgvRow.Cells["ModelName"].Value.ToString().Trim() == e.Node.Tag.ToString().Trim())
                    dgvRow.Cells["ModelName"].Selected = true;
            }
        }

        /// <summary>
        /// 用户编辑权限树形视图节点文本后事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tvRightsView_AfterLabelEdit(object sender, NodeLabelEditEventArgs e)
        {
            // 保存当前选中行的操作员名称
            string operatorName = dgvOperatorList.Rows[dgvOperatorList.SelectedCells[0].RowIndex].Cells["ModelName"].Value.ToString().Trim();
            // 同步修改权限集合
            _operatorCollection[operatorName].RightsCollection[e.Node.Tag.ToString()].RightsCaption = e.Label;
            // 将数据绑定显示到数据视图
            _rmuManager.BindDataToDataGridView(_operatorCollection[operatorName].RightsCollection);
        }

        /// <summary>
        /// 窗体指定关闭原因后且已关闭事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void frmRightsManager_FormClosed(object sender, FormClosedEventArgs e)
        {
            // 重新加载权限菜单
            _rmdManager.LoadMenuRightsItem(_msMain, _currentOperator.RightsCollection);
        }

        /// <summary>
        /// [添加用户]工具栏按钮点击事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tsbtnAddOperator_Click(object sender, EventArgs e)
        {
            frmOperatorManager frmAddOperator = new frmOperatorManager(_currentOperator, _msMain, false);
            frmAddOperator.ShowInTaskbar = false;
            frmAddOperator.ShowDialog();

            // 重新加载操作员列表
            _rmuManager.LoadOperatorList();

            // 选中最末项并使其滚动保持可见
            if (dgvOperatorList.Rows.Count > 0)
            {
                dgvOperatorList.Rows[dgvOperatorList.Rows.Count - 1].Selected = true;
                dgvOperatorList.FirstDisplayedScrollingRowIndex = dgvOperatorList.Rows.Count - 1;
            }
        }

        /// <summary>
        /// [删除用户]工具栏按钮点击事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tsbtnDeleteOperator_Click(object sender, EventArgs e)
        {
            // 如果有选中单元格
            if (dgvOperatorList.SelectedCells.Count > 0)
            {
                try
                {
                    // 获取当前要删除的操作员 ID
                    int operatorId = Convert.ToInt32(dgvOperatorList.SelectedCells[0].OwningRow.Cells["Id"].Value);
                    // 获取当前要删除的操作员名称
                    string operatorName = Convert.ToString(dgvOperatorList.SelectedCells[0].OwningRow.Cells["ModelName"].Value);

                    DialogResult result;
                    result = MessageBox.Show(
                        string.Format("确实要删除操作员 [{0}] 的所有(包括权限关系)信息吗?", operatorName),
                        "删除提示",
                        MessageBoxButtons.OKCancel,
                        MessageBoxIcon.Question,
                        MessageBoxDefaultButton.Button2);

                    if (result == DialogResult.Cancel)
                        return;

                    // 创建工厂类
                    BLLFactory.BLLFactory bllFactory = new BLLFactory.BLLFactory();

                    // 删除权限关系信息
                    IBLL.IRightsRelationManager rightsRelationManager = bllFactory.BuildRightsRelationManager();
                    if (rightsRelationManager.GetRightsRelationByOperatorId(operatorId).Count > 0)
                    {
                        if (!rightsRelationManager.DeleteRightsRelationByOperatorId(operatorId))
                        {
                            MessageBox.Show(
                            string.Format("未能删除操作员 [{0}] 的权限关系信息!", operatorName),
                            "删除失败",
                            MessageBoxButtons.OK,
                            MessageBoxIcon.Error);
                            return;
                        }
                    }

                    // 删除操作员信息
                    IBLL.IOperatorManager operatorManager = bllFactory.BuildOperatorManager();
                    if (!operatorManager.DeleteOperatorByID(operatorId))
                    {
                        MessageBox.Show(
                        string.Format("未能删除操作员 [{0}] 的基本信息!", operatorName),
                        "删除失败",
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Error);
                        return;
                    }

                    // 重新加载操作员列表
                    _rmuManager.LoadOperatorList();

                }
                catch (Exception ex)
                {
                    MessageBox.Show(
                        ex.Message,
                        "删除失败",
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Error);
                }
            }

            // 如果操作员信息数量为零
            if (_operatorCollection.Count == 0)
            {
                // 清空权限列表、操作员列表和权限视图
                dgvOperatorList.Rows.Clear();
                dgvRightsList.Rows.Clear();
                tvRightsView.Nodes.Clear();
            }
        }

        /// <summary>
        /// [分组管理]工具栏按钮点击事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tsbtnRightsGroupManager_Click(object sender, EventArgs e)
        {
            frmRightsGroupManager frmRightsGroupManager = new frmRightsGroupManager(this, this.FrmMain);
            frmRightsGroupManager.ShowInTaskbar = false;
            frmRightsGroupManager.ShowDialog();

            // 加载操作员列表
            _rmuManager.LoadOperatorList();
            // 刷新数据显示到数据视图
            _rmuManager.BindOperatorInfoToDataGridView(_operatorCollection);
        }

        /// <summary>
        /// [权限列表]单元格验证事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dgvRightsList_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
        {
            if (dgvRightsList.Columns[e.ColumnIndex].Name == "RightsCaption")
            {
                if (e.FormattedValue.ToString().Trim() == String.Empty)
                {
                    dgvRightsList.Rows[e.RowIndex].ErrorText =
                        "权限标题不允许为空字符(空格)!";
                    MessageBox.Show(
                        dgvRightsList.Rows[e.RowIndex].ErrorText,
                        "编辑提示",
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Error);
                    e.Cancel = true;
                }
            }
        }

        /// <summary>
        /// [操作员列表]单元格验证事件 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dgvOperatorList_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
        {
            if (dgvOperatorList.Columns[e.ColumnIndex].Name == "Password")
            {
                if (e.FormattedValue.ToString().Trim().Length < 6)
                {
                    dgvOperatorList.Rows[e.RowIndex].ErrorText =
                        "用户密码长度不能小于六位!";
                    MessageBox.Show(
                        dgvOperatorList.Rows[e.RowIndex].ErrorText,
                        "编辑提示",
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Error);
                    e.Cancel = true;
                }
            }
        }

        /// <summary>
        /// [分组模式]/[用户模式]工具栏下拉菜单项点击事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tsmiRightsMode_Click(object sender, EventArgs e)
        {
            // 勾选点击菜单项
            (sender as ToolStripMenuItem).Checked = true;
            // 提交并结束对当前单元格的编辑
            dgvRightsList.EndEdit();

            if ((sender as ToolStripMenuItem).Name == tsmiGroupMode.Name)
            {
                tsmiOperatorMode.Checked = false;
                _rightsViewIsChecked = false;
                tsbtnRightsGroupManager.Visible = true;
                tsbtnRightsMode.Text = tsmiGroupMode.Text;
                tvRightsView.ContextMenuStrip = null;
            }
            if ((sender as ToolStripMenuItem).Name == tsmiOperatorMode.Name)
            {
                tsmiGroupMode.Checked = false;
                _rightsViewIsChecked = true;
                tsbtnRightsGroupManager.Visible = false;
                tsbtnRightsMode.Text = tsmiOperatorMode.Text;
                tvRightsView.ContextMenuStrip = this.cmsRightsTreeView;
            }
        }

        /// <summary>
        /// [权限模式]工具栏按钮点击事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tsbtnRightsMode_ButtonClick(object sender, EventArgs e)
        {
            // 下拉弹出菜单选项
            tsbtnRightsMode.ShowDropDown();
        }

        #endregion
    }
}

实例下载地址

C# winform 权限管理系统完整源码下载(含数据库)

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

第 1 楼 h332657060 发表于: 2014-05-21 09:05 56
v好东西...下来看看...很需要这个例子

支持(0) 盖楼(回复)

第 2 楼 cio1160 发表于: 2015-01-04 15:58 47
好例子,下载下来看看

支持(0) 盖楼(回复)

第 3 楼 ol808lo 发表于: 2015-01-27 15:45 53
看看

支持(0) 盖楼(回复)

第 4 楼 xrqeye 发表于: 2015-02-04 13:40 31
下来看看

支持(0) 盖楼(回复)

第 5 楼 yucz 发表于: 2015-02-05 09:17 40
正好用到

支持(0) 盖楼(回复)

第 6 楼 wuxunhua 发表于: 2015-02-26 15:51 51
我来说两句...不错不错不错不错

支持(0) 盖楼(回复)

第 7 楼 wuxunhua 发表于: 2015-02-26 15:51 56
我来说两句...不错不错不错不错

支持(0) 盖楼(回复)

第 8 楼 xlmfsy 发表于: 2015-03-16 23:06 13
感觉不错 ,可是积分不够

支持(0) 盖楼(回复)

第 9 楼 76680277 发表于: 2015-04-01 14:20 32
我来说两句..下载下来看看

支持(0) 盖楼(回复)

第 10 楼 jeenlee 发表于: 2015-05-05 11:12 12
看看怎么样

支持(0) 盖楼(回复)

第 11 楼 网络霸气家族 发表于: 2015-05-19 23:30 49
我来说两句...的撒范德萨

支持(0) 盖楼(回复)

第 12 楼 网络霸气家族 发表于: 2015-05-19 23:31 01
看看源码

支持(0) 盖楼(回复)

第 13 楼 sunyuan 发表于: 2015-05-23 14:28 27
好例子,实用

支持(0) 盖楼(回复)

第 14 楼 sunyuan 发表于: 2015-05-23 14:28 37
好例子,实用

支持(0) 盖楼(回复)

第 15 楼 w610631527 发表于: 2015-07-13 20:11 45
好用

支持(0) 盖楼(回复)

第 16 楼 pp668665 发表于: 2015-09-07 23:44 24
我来说两句...看看源码

支持(0) 盖楼(回复)

第 17 楼 chch 发表于: 2015-10-08 17:04 19
学习中,正好用上

支持(0) 盖楼(回复)

第 18 楼 winfly 发表于: 2015-10-15 10:00 44
没有积分怎么下载呀!

支持(0) 盖楼(回复)

第 19 楼 winfly 发表于: 2015-10-15 10:00 48
没有积分怎么下载呀!

支持(0) 盖楼(回复)

第 20 楼 nero2015 发表于: 2015-10-27 22:18 23
没有积分怎么下载呀!

支持(0) 盖楼(回复)

第 21 楼 cqdavid111 发表于: 2015-10-30 10:38 05
怎么获得积分啊。。。

支持(0) 盖楼(回复)

第 22 楼 741026254 发表于: 2015-11-22 15:43 57
我来说两句...e11111111111111111111111111111111

支持(0) 盖楼(回复)

第 23 楼 fengzhimeng 发表于: 2016-01-22 01:14 51
百度搜索的实例,希望对自己有用哈

支持(0) 盖楼(回复)

第 24 楼 zyy2008 发表于: 2016-04-27 09:52 35
看看,是否有用?

支持(0) 盖楼(回复)

第 25 楼 17950773 发表于: 2016-06-15 09:24 37
好好学习一下

支持(0) 盖楼(回复)

第 26 楼 碧根果 发表于: 2016-07-06 14:07 06
学习一下,感谢分享~

支持(0) 盖楼(回复)

第 27 楼 liudian 发表于: 2016-07-12 16:37 33
学习一下,感谢分享~

支持(0) 盖楼(回复)

第 28 楼 liudian 发表于: 2016-07-12 16:37 46
学习一下,感谢分享~

支持(0) 盖楼(回复)

第 29 楼 liudian 发表于: 2016-07-12 16:38 16
学习一下,感谢分好例子,实用享~

支持(0) 盖楼(回复)

第 30 楼 linjianlong 发表于: 2016-09-27 18:09 00
积分不够怎么办?

支持(0) 盖楼(回复)

第 31 楼 哎呀呀呀的发个好 发表于: 2016-12-17 22:49 10
不错呢~~~

支持(0) 盖楼(回复)

第 32 楼 北大荒 发表于: 2017-02-13 19:08 14
好像非常不错

支持(0) 盖楼(回复)

第 33 楼 leverjian 发表于: 2017-03-27 15:10 51
好像非常不错

支持(0) 盖楼(回复)

第 34 楼 wji3030 发表于: 2017-04-19 20:54 00
看看,应该不错

支持(0) 盖楼(回复)

第 35 楼 zyb0855 发表于: 2017-05-25 14:28 12
我来说两句...不错不错不错不错

支持(0) 盖楼(回复)

第 36 楼 lin050620 发表于: 2017-05-26 14:00 25
市领导就是SDK死定了斯柯达

支持(0) 盖楼(回复)

第 37 楼 kangjk 发表于: 2017-06-27 16:03 22
看看,应该不错

支持(0) 盖楼(回复)

发表评论

(您的评论需要经过审核才能显示)

查看所有37条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
;
报警