public ExcelCheckBox(ExcelInterop.Range range, ExcelCheckBoxDefinition definition) { OwnerRange = range; OwnerRange.Value2 = null; ExcelInterop.Worksheet worksheet = null; ExcelInterop.OLEObjects oleObjects = null; ExcelInterop.OLEObject oleObject = null; try { worksheet = OwnerRange.Worksheet; Name = $"ExcelCB{Interlocked.Increment(ref cpt)}"; oleObjects = worksheet.OLEObjects(); oleObject = oleObjects.Add("Forms.CheckBox.1", Type.Missing, true, false, Type.Missing, Type.Missing, Type.Missing, OwnerRange.Left + 3, OwnerRange.Top + 1, 12, 12); oleObject.Name = Name; oleObject.Placement = ExcelInterop.XlPlacement.xlMove; CheckBox = worksheet.GetType().InvokeMember(Name, BindingFlags.Default | BindingFlags.GetProperty, null, worksheet, null) as ExcelForms.CheckBox; CheckBox.SpecialEffect = ExcelForms.fmButtonEffect.fmButtonEffectSunken; CheckBox.TripleState = false; CheckBox.Caption = string.Empty; CheckBox.BackColor = (int)OwnerRange.Interior.Color; CheckBox.BackStyle = ExcelForms.fmBackStyle.fmBackStyleTransparent; oleObject.Interior.ColorIndex = -4142; CheckBox.AutoSize = false; oleObject = null; } finally { if (oleObject != null) { ExcelApplication.ReleaseComObject(oleObject); } if (oleObjects != null) { ExcelApplication.ReleaseComObject(oleObjects); } if (worksheet != null) { ExcelApplication.ReleaseComObject(worksheet); } oleObject = null; oleObjects = null; worksheet = null; } }
private ExcelBindingDefinitionCheckBox(BindingDefinitionDescription definitionDescription, ExcelTemplateDefinition templateDefinition, ExcelCheckBoxDefinition definition) : base(definitionDescription) { TemplateDefinition = templateDefinition; Definition = definition; if (!string.IsNullOrEmpty(definition.Value)) { ValueBindingDefinition = BindingDefinitionFactory.CreateInstances(templateDefinition, DefinitionDescription); if (!ValueBindingDefinition.BindingType.Equals(typeof(bool))) { throw new EtkException("A 'CheckBox' must be bound with RetrieveContextualMethodInfo boolean value"); } CanNotify = ValueBindingDefinition.CanNotify; } }
public static ExcelBindingDefinitionCheckBox CreateInstance(ExcelTemplateDefinition templateDefinition, string definition) { ExcelBindingDefinitionCheckBox ret = null; if (!string.IsNullOrEmpty(definition)) { try { ExcelCheckBoxDefinition excelButtonDefinition = definition.Deserialize <ExcelCheckBoxDefinition>(); BindingDefinitionDescription definitionDescription = BindingDefinitionDescription.CreateBindingDescription(templateDefinition, excelButtonDefinition.Value, excelButtonDefinition.Value); ret = new ExcelBindingDefinitionCheckBox(definitionDescription, templateDefinition, excelButtonDefinition); } catch (Exception ex) { string message = $"Cannot retrieve the checkbox dataAccessor '{definition.EmptyIfNull()}'. {ex.Message}"; throw new EtkException(message); } } return(ret); }