Можно ли в ComboBox добавить дополнительную информацию? Я заполняю ComboBox из List, который содержит ID и Name. Можно ли сделать так, что бы ComboBox по определенному индексу возвращал не только Name, но и реальный ID ? Иными словами, что по определенному индексу ComboBox лежали ID и Name, а на самой форме отображалось Name.
Да, можно добавить дополнительную информацию в ComboBox, чтобы при выборе элемента отображалось только определенное значение, но при этом можно получить и другие атрибуты этого элемента.
Для этого вам нужно создать класс или структуру, которая содержит два поля: ID и Name. Затем заполнить ваш List этими объектами вместо просто строк.
После этого вы можете привязать ваш ComboBox к этому List и использовать определенный индекс для получения как Name, так и ID элемента.
Пример кода на C#:
public partial class Form1 : Form { public class Item { public int ID { get; set; } public string Name { get; set; } public override string ToString() { return Name; } } private List<Item> items = new List<Item>(); public Form1() { InitializeComponent(); items.Add(new Item { ID = 1, Name = "Item 1" }); items.Add(new Item { ID = 2, Name = "Item 2" }); items.Add(new Item { ID = 3, Name = "Item 3" }); comboBox1.DataSource = items; comboBox1.DisplayMember = "Name"; } private void button1_Click(object sender, EventArgs e) { int selectedIndex = comboBox1.SelectedIndex; if (selectedIndex != -1) { Item selectedItem = items[selectedIndex]; MessageBox.Show($"Selected Item Name: {selectedItem.Name}, Selected Item ID: {selectedItem.ID}"); } } }
В этом примере ComboBox заполняется объектами типа Item, содержащими ID и Name. В обработчике нажатия кнопки вы можете получить выбранный элемент ComboBox и получить как Name, так и ID этого элемента.
Да, можно добавить дополнительную информацию в ComboBox, чтобы при выборе элемента отображалось только определенное значение, но при этом можно получить и другие атрибуты этого элемента.
Для этого вам нужно создать класс или структуру, которая содержит два поля: ID и Name. Затем заполнить ваш List этими объектами вместо просто строк.
После этого вы можете привязать ваш ComboBox к этому List и использовать определенный индекс для получения как Name, так и ID элемента.
Пример кода на C#:
public partial class Form1 : Form{
public class Item
{
public int ID { get; set; }
public string Name { get; set; }
public override string ToString()
{
return Name;
}
}
private List<Item> items = new List<Item>();
public Form1()
{
InitializeComponent();
items.Add(new Item { ID = 1, Name = "Item 1" });
items.Add(new Item { ID = 2, Name = "Item 2" });
items.Add(new Item { ID = 3, Name = "Item 3" });
comboBox1.DataSource = items;
comboBox1.DisplayMember = "Name";
}
private void button1_Click(object sender, EventArgs e)
{
int selectedIndex = comboBox1.SelectedIndex;
if (selectedIndex != -1)
{
Item selectedItem = items[selectedIndex];
MessageBox.Show($"Selected Item Name: {selectedItem.Name}, Selected Item ID: {selectedItem.ID}");
}
}
}
В этом примере ComboBox заполняется объектами типа Item, содержащими ID и Name. В обработчике нажатия кнопки вы можете получить выбранный элемент ComboBox и получить как Name, так и ID этого элемента.