Как добавить значения в Combox в C # .net - PullRequest
1 голос
/ 27 ноября 2010

У меня есть один combox, и я хочу добавить значение как. Когда пользователь щелкнет на combox, он увидит имя «Дан», «Петр», «Дэвид», но значение за именем должно быть «1», «2», "3" идентификаторы имени. Как я могу сделать это в C # Windows Combo.

Ответы [ 2 ]

2 голосов
/ 27 ноября 2010

Вы можете добавить в ComboBox любой класс не только String. ComboBox использует метод ToString для отображения элемента. Пожалуйста, смотрите exalmpe:

using System.Windows.Forms;

namespace WindowsFormsApplication
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            comboBox.Items.Add(new User(1, "Dan"));
            comboBox.Items.Add(new User(2, "Peter"));
            comboBox.Items.Add(new User(3, "David"));

            comboBox.SelectedIndexChanged += new System.EventHandler(ComboBoxSelectedIndexChanged);
        }

        void ComboBoxSelectedIndexChanged(object sender, System.EventArgs e)
        {
            ComboBox combo = (ComboBox)sender;
            User user = (User)combo.SelectedItem;
            MessageBox.Show("User Id = " + user.Id.ToString() + ",  Name" + user.Name);   
        }
    }

    public class User
    {
        public long Id { get; private set; }
        public string Name { get; private set; }

        public User(long id, string name)
        {
            Id = id;
            Name = name;
        }

        public override string ToString()
        {
            return Name;
        }
    }
}
2 голосов
/ 27 ноября 2010

Вы хотите использовать свойства ValueMember и DisplayMember в выпадающем списке. MSDN Пример

Краткий пример:

public class Foo
{
    public int ID { get; private set; }
    public string Name { get; private set; }

    public class Foo(int id, string name)
    {
        ID = id;
        Name = name;
    }
}

Затем просто убедитесь, что ID установлен как ValueMember, а Имя как DisplayMember.Добавьте коллекцию Foo и все готово.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...