private void SetPrivilege(string privilegeCode) { int anketaAccess = OperatorOrg.GetAnketaDataAccesseCode(privilegeCode); bool readOnly = (anketaAccess == 1); if (readOnly) { addStripButton.Enabled = !readOnly; editStripButton.Enabled = !readOnly; delStripButton.Enabled = !readOnly; dismissStripButton.Enabled = !readOnly; restoreStripButton.Enabled = !readOnly; attachToOrgButton.Enabled = !readOnly; addStripButton.ToolTipText = "У вас недостаточно прав. Обратитесь к администратору"; editStripButton.ToolTipText = "У вас недостаточно прав. Обратитесь к администратору"; delStripButton.ToolTipText = "У вас недостаточно прав. Обратитесь к администратору"; dismissStripButton.ToolTipText = "У вас недостаточно прав. Обратитесь к администратору"; restoreStripButton.ToolTipText = "У вас недостаточно прав. Обратитесь к администратору"; ToolTip toolTip1 = new ToolTip(); toolTip1.SetToolTip(attachToOrgButton, "У вас недостаточно прав. Обратитесь к администратору"); personView.CellDoubleClick -= personView_CellDoubleClick; } int anketaPrint = OperatorOrg.GetAnketaPrintAccesseCode(privilegeCode); printStripDropDownButton.Enabled = (anketaPrint > 0); if (anketaPrint == 0) { printStripDropDownButton.ToolTipText = "У вас недостаточно прав. Обратитесь к администратору"; } }
private void personView_MouseClick(object sender, MouseEventArgs e) { try { if (e.Button == MouseButtons.Right) { ContextMenuStrip menu = cmsPerson; if (menu == null) { return; } DataGridView dataView = sender as DataGridView; ToolStripItem[] items; //Массив в который возвращает элементы метод Find List <string> menuItems = new List <string> { "editPersonMenuItem", "delpersonMenuItem", "dismissPersonMenuItem", "restorePersonMenuItem", "printAnketsMenuItem", "printUnregisteredMenuItem" }; //Список элементов которые нужно включать\выключать int currentMouseOverRow = dataView.HitTest(e.X, e.Y).RowIndex; bool isEnabled = !(currentMouseOverRow < 0); foreach (string t in menuItems) { items = menu.Items.Find(t, true); if (items.Any()) { items[0].Enabled = isEnabled; } } menuItems = new List <string>(); //Список элементов которые нужно принудительно выключать if (restoreStripButton.Enabled) { menuItems.Add("dismissPersonMenuItem"); } else { menuItems.Add("restorePersonMenuItem"); } // Проверка прав и отключение пунктов int anketaAccess = OperatorOrg.GetAnketaDataAccesseCode(_privilege); bool readOnly = (anketaAccess == 1); if (readOnly) { menuItems.Add("addPersonMenuItem"); menuItems.Add("editPersonMenuItem"); menuItems.Add("delpersonMenuItem"); menuItems.Add("dismissPersonMenuItem"); menuItems.Add("restorePersonMenuItem"); } int anketaPrint = OperatorOrg.GetAnketaPrintAccesseCode(_privilege); if (anketaPrint == 0) { menuItems.Add("printAnketsMenuItem"); menuItems.Add("printUnregisteredMenuItem"); } foreach (string t in menuItems) { items = menu.Items.Find(t, true); if (items.Any()) { items[0].Enabled = false; } } menu.Show(dataView, e.Location); } } catch (Exception ex) { MainForm.ShowErrorFlexMessage(ex.Message, "Непредвиденная ошибка"); } }
private void personView_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 = cmsPerson; if (cms == null) { return; } Rectangle r = currentCell.DataGridView.GetCellDisplayRectangle(currentCell.ColumnIndex, currentCell.RowIndex, false); Point p = new Point(r.Left, r.Top); ToolStripItem[] items; //Массив в который возвращает элементы метод Find List <string> menuItems = new List <string>(); //Список элементов которые нужно включать\выключать menuItems = new List <string>(); //Список элементов которые нужно принудительно выключать if (restoreStripButton.Enabled) { menuItems.Add("dismissPersonMenuItem"); } else { menuItems.Add("restorePersonMenuItem"); } // Проверка прав и отключение пунктов int anketaAccess = OperatorOrg.GetAnketaDataAccesseCode(_privilege); bool readOnly = (anketaAccess == 1); if (readOnly) { menuItems.Add("addPersonMenuItem"); menuItems.Add("editPersonMenuItem"); menuItems.Add("delpersonMenuItem"); menuItems.Add("dismissPersonMenuItem"); menuItems.Add("restorePersonMenuItem"); } int anketaPrint = OperatorOrg.GetAnketaPrintAccesseCode(_privilege); if (anketaPrint == 0) { menuItems.Add("printAnketsMenuItem"); menuItems.Add("printUnregisteredMenuItem"); } foreach (string t in menuItems) { items = cms.Items.Find(t, true); if (items.Any()) { items[0].Enabled = false; } } cms.Show((sender as DataGridView), p); } if (e.KeyCode == Keys.Delete) { int anketaAccess = OperatorOrg.GetAnketaDataAccesseCode(_privilege); bool readOnly = (anketaAccess == 1); if (readOnly) { MainForm.ShowInfoMessage("У вас недостаточно прав. Обратитесь к администратору.", "Внимание"); return; } delStripButton_Click(sender, e); } if (e.KeyCode == Keys.Enter) { int anketaAccess = OperatorOrg.GetAnketaDataAccesseCode(_privilege); bool readOnly = (anketaAccess == 1); if (readOnly) { MainForm.ShowInfoMessage("У вас недостаточно прав. Обратитесь к администратору.", "Внимание"); return; } editStripButton_Click(sender, e); } if (e.KeyCode == Keys.Space) { if ((sender as DataGridView).CurrentRow == null) { return; } (_personBS.Current as DataRowView)[Check] = !Convert.ToBoolean((_personBS.Current as DataRowView)[Check]); (sender as DataGridView).EndEdit(); (sender as DataGridView).Refresh(); } } catch (Exception ex) { MainForm.ShowErrorFlexMessage(ex.Message, "Непредвиденная ошибка"); } }