/// <summary> /// Apply access rights to selected objects. /// </summary> private void AccessRightsApplyBtn_Click(object sender, EventArgs e) { try { int access = (int)AccessRightAllCb.SelectedItem; int ver = version; if (Target is GXDLMSAssociationLogicalName) { ver = Target.Version; } foreach (DataGridViewRow it in Accessrights.SelectedRows) { //Logical name can't changed. if (it.Index != 0) { if (ver < 3) { ((GXDLMSAttributeSettings)bindingSource1[it.Index]).Access = (AccessMode)access; ((GXDLMSAttributeSettings)bindingSource1[it.Index]).Access3 = 0; Target.SetAccess(it.Index, (AccessMode)access); } else { ((GXDLMSAttributeSettings)bindingSource1[it.Index]).Access = 0; if (access == 0) { ((GXDLMSAttributeSettings)bindingSource1[it.Index]).Access3 = 0; } else { ((GXDLMSAttributeSettings)bindingSource1[it.Index]).Access3 |= (AccessMode3)access; } Target.SetAccess3(1 + it.Index, (AccessMode3)((GXDLMSAttributeSettings)bindingSource1[it.Index]).Access3); } Accessrights.UpdateCellValue(2, it.Index); } } } catch (Exception ex) { MessageBox.Show(this, ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }