/// <summary>
 /// Apply method access rights to selected objects.
 /// </summary>
 private void MethodAccessRightsApplyBtn_Click(object sender, EventArgs e)
 {
     try
     {
         int access = (int)MethodAccessRightAllCb.SelectedItem;
         int ver    = version;
         if (Target is GXDLMSAssociationLogicalName)
         {
             ver = Target.Version;
         }
         foreach (DataGridViewRow it in MethodAccessrights.SelectedRows)
         {
             if (ver < 3)
             {
                 ((GXDLMSAttributeSettings)bindingSource3[it.Index]).MethodAccess  = (MethodAccessMode)access;
                 ((GXDLMSAttributeSettings)bindingSource3[it.Index]).MethodAccess3 = 0;
                 Target.SetMethodAccess(it.Index, (MethodAccessMode)access);
             }
             else
             {
                 ((GXDLMSAttributeSettings)bindingSource3[it.Index]).MethodAccess = 0;
                 if (access == 0)
                 {
                     ((GXDLMSAttributeSettings)bindingSource3[it.Index]).MethodAccess3 = 0;
                 }
                 else
                 {
                     ((GXDLMSAttributeSettings)bindingSource3[it.Index]).MethodAccess3 |= (MethodAccessMode3)access;
                 }
                 Target.SetMethodAccess3(1 + it.Index, (MethodAccessMode3)((GXDLMSAttributeSettings)bindingSource3[it.Index]).MethodAccess3);
             }
             MethodAccessrights.UpdateCellValue(2, it.Index);
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(this, ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }