namespace ComponentsLab { public partial class VisualSelectionComponent : UserControl { private EventHandler? _changeComboBox; public VisualSelectionComponent() { InitializeComponent(); } //Публичное свойство (set, get) для установки и получения выбранного значения (возвращает пустую строку, если нет выбранного значения) public string comboBoxSelectedValue { get { if (comboBoxComponent.SelectedItem != null) { return comboBoxComponent.GetItemText(comboBoxComponent.SelectedItem); } else { return string.Empty; } } set { if (comboBoxComponent.SelectedIndex != -1) { comboBoxComponent.Items[comboBoxComponent.SelectedIndex] = value; } } } // Событие, вызываемое при смене значения в ComboBox public event EventHandler ChangeComboBox { add { _changeComboBox += value; } remove { _changeComboBox -= value; } } private void comboBoxComponent_SelectedIndexChanged(object sender, EventArgs e) { _changeComboBox?.Invoke(this, e); } // Отдельный публичный метод отчистки списка private void buttonClear_Click(object sender, EventArgs e) { comboBoxComponent.Items.Clear(); comboBoxComponent.Text = string.Empty; comboBoxComponent.SelectedItem = null; MessageBox.Show($"The list has been cleared"); } } }