using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using static System.Windows.Forms.VisualStyles.VisualStyleElement; namespace COPWinForms { public partial class ComponentCBox : UserControl { public ComponentCBox() { InitializeComponent(); } //метод, у которого в передаваемых параметрах идет список строк и через этот список идет заполнение ComboBox; public void AddingToList(List Values) { if (Values.Count == 0) { return; } comboBox.Items.AddRange(Values.ToArray()); } //Отдельный публичный метод отчистки списка. public void Clear() { comboBox.Items.Clear(); } //публичное свойство(set, get) для установки и получения выбранного значения (возвращает пустую строку, если нет выбранного значения) public string Selected { get { if (comboBox.Items.Count == 0) { return ""; } if (comboBox.SelectedItem == null) { return ""; } return comboBox.SelectedItem.ToString()!; } set { if (comboBox.Items.Contains(value)) { comboBox.SelectedItem = value; } } } private EventHandler _explicitEvent; public event EventHandler ExplicitEvent { add { _explicitEvent += value; } remove { _explicitEvent -= value; } } //событие, вызываемое при смене значения в ComboBox. private void comboBox_SelectedValueChanged(object sender, EventArgs e) { _explicitEvent?.Invoke(sender, e); } } }