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, "Непредвиденная ошибка"); } }
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 = "У вас недостаточно прав. Обратитесь к администратору"; } }
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, "Непредвиденная ошибка"); } }