PIbd-32_Rogashova_E.A._COP_1/COPWinForms/ComponentCBox.cs

79 lines
2.3 KiB
C#
Raw Normal View History

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<string> 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);
}
}
}