private void AddEnumSetting(IOcrSettingDescriptor settingDescriptor) { ComboBox cb = new ComboBox(); cb.DropDownStyle = ComboBoxStyle.DropDownList; cb.Width = _pnlSettings.ClientSize.Width - _edge * 2; cb.Location = new Point(_edge, _edge); cb.Anchor = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right; _pnlSettings.Controls.Add(cb); cb.SelectedItem = _ocrEngine.SettingManager.GetValue(settingDescriptor.Name); string[] members = settingDescriptor.GetEnumMemberFriendlyNames(); foreach (string member in members) { cb.Items.Add(member); } int value = _ocrEngine.SettingManager.GetEnumValue(settingDescriptor.Name); cb.SelectedIndex = value; cb.Tag = settingDescriptor.Name; cb.SelectedIndexChanged += new EventHandler(EnumComboBox_SelectedIndexChanged); }
private void AddEnumFlagsSetting(IOcrSettingDescriptor settingDescriptor) { CheckedListBox clb = new CheckedListBox(); clb.CheckOnClick = true; clb.Location = new Point(_edge, _edge); clb.Size = new Size(_pnlSettings.ClientSize.Width - _edge * 2, _pnlSettings.ClientSize.Height - _edge * 2); clb.Anchor = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom; _pnlSettings.Controls.Add(clb); string[] memberNames = settingDescriptor.GetEnumMemberFriendlyNames(); int[] memberValues = settingDescriptor.GetEnumMemberValues(); int value = _ocrEngine.SettingManager.GetEnumValue(settingDescriptor.Name); for (int i = 0; i < memberNames.Length; i++) { int memberValue = memberValues[i]; if (memberValue != 0) { int index = clb.Items.Add(memberNames[i]); if ((memberValue & value) == memberValue) { clb.SetItemChecked(index, true); } } } clb.Tag = settingDescriptor.Name; clb.ItemCheck += new ItemCheckEventHandler(EnumFlagsCheckedListBox_ItemCheck); }