コード例 #1
0
        private void mergeView_MouseClick(object sender, MouseEventArgs e)
        {
            try
            {
                if (e.Button == MouseButtons.Right)
                {
                    ContextMenuStrip menu = cmsSvod;
                    if (menu == null)
                    {
                        return;
                    }

                    DataGridView    dataView = sender as DataGridView;
                    ToolStripItem[] items; //Массив в который возвращает элементы метод Find
                    List <string>   menuItems = new List <string>
                    {
                        "editSvodMenuItem",
                        "delSvodMenuItem",
                        "printSvodMenuItem"
                    }; //Список элементов которые нужно включать\выключать

                    int  currentMouseOverRow = dataView.HitTest(e.X, e.Y).RowIndex;
                    bool isEnabled           = !(currentMouseOverRow < 0);
                    foreach (string t in menuItems)
                    {
                        items = menu.Items.Find(t, false);
                        if (items.Any())
                        {
                            items[0].Enabled = isEnabled;
                        }
                    }

                    menuItems = new List <string>(); //Список элементов которые нужно принудительно выключать

                    // Проверка прав и отключение пунктов
                    bool readOnly = OperatorOrg.GetStajDohodDataAccesseCode(_privilege) == 1;
                    if (readOnly)
                    {
                        menuItems.Add("addSvodMenuItem");
                        menuItems.Add("editSvodMenuItem");
                        menuItems.Add("delSvodMenuItem");
                    }

                    foreach (string t in menuItems)
                    {
                        items = menu.Items.Find(t, false);
                        if (items.Any())
                        {
                            items[0].Enabled = false;
                        }
                    }

                    menu.Show(dataView, e.Location);
                }
            }
            catch (Exception ex)
            {
                MainForm.ShowErrorFlexMessage(ex.Message, "Непредвиденная ошибка");
            }
        }
コード例 #2
0
        private void SetPrivilege(string privilegeCode)
        {
            bool readOnly = OperatorOrg.GetStajDohodDataAccesseCode(privilegeCode) == 1;

            if (readOnly)
            {
                addStripButton.Enabled  = false;
                editStripButton.Enabled = false;
                delStripButton.Enabled  = false;

                mergeView.CellDoubleClick -= mergeView_CellDoubleClick;

                addStripButton.ToolTipText  = "У вас недостаточно прав. Обратитесь к администратору";
                editStripButton.ToolTipText = "У вас недостаточно прав. Обратитесь к администратору";
                delStripButton.ToolTipText  = "У вас недостаточно прав. Обратитесь к администратору";
            }
        }
コード例 #3
0
        private void mergeView_KeyDown(object sender, KeyEventArgs e)
        {
            try
            {
                if (e.KeyCode == Keys.Apps || (e.Shift && e.KeyCode == Keys.F10))
                {
                    DataGridViewCell currentCell = (sender as DataGridView).CurrentCell;
                    if (currentCell == null)
                    {
                        return;
                    }
                    ContextMenuStrip cms = cmsSvod;
                    if (cms == null)
                    {
                        return;
                    }
                    Rectangle r = currentCell.DataGridView.GetCellDisplayRectangle(currentCell.ColumnIndex,
                                                                                   currentCell.RowIndex, false);
                    Point p = new Point(r.Left, r.Top);

                    DataGridView    dataView = sender as DataGridView;
                    ToolStripItem[] items; //Массив в который возвращает элементы метод Find
                    List <string>   menuItems = new List <string>
                    {
                        "editSvodMenuItem",
                        "delSvodMenuItem",
                        "printSvodMenuItem"
                    }; //Список элементов которые нужно включать\выключать

                    int  currentMouseOverRow = dataView.CurrentCell.RowIndex;
                    bool isEnabled           = !(currentMouseOverRow < 0);
                    foreach (string t in menuItems)
                    {
                        items = cms.Items.Find(t, false);
                        if (items.Any())
                        {
                            items[0].Enabled = isEnabled;
                        }
                    }

                    menuItems = new List <string>(); //Список элементов которые нужно принудительно выключать

                    // Проверка прав и отключение пунктов
                    bool readOnly = OperatorOrg.GetStajDohodDataAccesseCode(_privilege) == 1;
                    if (readOnly)
                    {
                        menuItems.Add("addSvodMenuItem");
                        menuItems.Add("editSvodMenuItem");
                        menuItems.Add("delSvodMenuItem");
                    }

                    foreach (string t in menuItems)
                    {
                        items = cms.Items.Find(t, false);
                        if (items.Any())
                        {
                            items[0].Enabled = false;
                        }
                    }

                    cms.Show((sender as DataGridView), p);
                }

                if (e.KeyCode == Keys.Delete)
                {
                    bool readOnly = OperatorOrg.GetStajDohodDataAccesseCode(_privilege) == 1;
                    if (readOnly)
                    {
                        MainForm.ShowInfoMessage("У вас недостаточно прав. Обратитесь к администратору.", "Внимание");
                        return;
                    }
                    delStripButton_Click(sender, e);
                }

                if (e.KeyCode == Keys.Enter)
                {
                    bool readOnly = OperatorOrg.GetStajDohodDataAccesseCode(_privilege) == 1;
                    if (readOnly)
                    {
                        MainForm.ShowInfoMessage("У вас недостаточно прав. Обратитесь к администратору.", "Внимание");
                        return;
                    }
                    editSvodMenuItem_Click(sender, e);
                }
            }
            catch (Exception ex)
            {
                MainForm.ShowErrorFlexMessage(ex.Message, "Непредвиденная ошибка");
            }
        }