private void UpdateCapability(CapabilityContainer capContainer) { try { if (capContainer is CapabilityContainerOneValueFloat) { CapabilityContainerOneValueFloat capContainerFloat = capContainer as CapabilityContainerOneValueFloat; float newFloatValue; if (float.TryParse(ValueTextBox.Text, out newFloatValue)) { capContainerFloat.Value = newFloatValue; } } else if (capContainer is CapabilityContainerOneValueString) { CapabilityContainerOneValueString capContainerString = capContainer as CapabilityContainerOneValueString; capContainerString.Value = ValueTextBox.Text; } else if (capContainer is CapabilityContainerEnum) { CapabilityContainerEnum capContainerEnum = capContainer as CapabilityContainerEnum; CapabilityContainerOneValue capCurrentValue = capContainerEnum.CurrentValue; if (capCurrentValue is CapabilityContainerOneValueFloat) { CapabilityContainerOneValueFloat capCurrentValueFloat = capCurrentValue as CapabilityContainerOneValueFloat; float newFloatValue; if (float.TryParse(CurrentValueTextBox.Text, out newFloatValue)) { capCurrentValueFloat.Value = newFloatValue; } } else if (capCurrentValue is CapabilityContainerOneValueString) { CapabilityContainerOneValueString capCurrentValueString = capCurrentValue as CapabilityContainerOneValueString; capCurrentValueString.Value = CurrentValueTextBox.Text; } } else if (capContainer is CapabilityContainerRange) { CapabilityContainerRange capContainerRange = capContainer as CapabilityContainerRange; float newMaximumValue; if (float.TryParse(MaximumTextBox.Text, out newMaximumValue)) { capContainerRange.Maximum = newMaximumValue; } float newMinimumValue; if (float.TryParse(MinimumTextBox.Text, out newMinimumValue)) { capContainerRange.Minimum = newMinimumValue; } float newValue; if (float.TryParse(ValueTextBox.Text, out newValue)) { capContainerRange.Value = newValue; } float newStepValue; if (float.TryParse(StepTextBox.Text, out newStepValue)) { capContainerRange.Step = newStepValue; } } twainDevice.SetCapability(capContainer); } catch (TwainException ex) { MessageBox.Show(String.Format(Constants.twainErrorString, (int)ex.ConditionCode, ex.ConditionDescription), "Error setting capabilities.", MessageBoxButtons.OK, MessageBoxIcon.Error); } }