using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace VisualComponentsLib { public partial class MyDropDownList: UserControl { public MyDropDownList() { InitializeComponent(); } public void LoadValues(List Values) { if (Values.Count == 0) { return; } comboBox.Items.AddRange(Values.ToArray()); } //Отдельный публичный метод отчистки списка. public void Clear() { comboBox.Items.Clear(); } //публичное свойство(set, get) для установки и получения выбранного значения (возвращает пустую строку, если нет выбранного значения) public string SelectedValue { 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 _event; public event EventHandler Event { add { _event += value; } remove { _event -= value; } } //событие, вызываемое при смене значения в ComboBox. private void comboBox_SelectedValueChanged(object sender, EventArgs e) { _event?.Invoke(sender, e); } } }