Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

элементы формы win приложения

400
25 мая 2009 года
ArtemS2006
272 / / 12.01.2008
в asp.net элементы форм ListBox и ComboBox содержат пары ключ-значение. можно ли добиться от них аналогичной функциональности в windows приложении? то есть, чтоб они содержали не просто набор строк, а пары ключ-значение.
14
25 мая 2009 года
Phodopus
3.3K / / 19.06.2008
Смотрите в сторону LB_GETITEMDATA.
И размещать это сообщение следовало бы в WinAPI.
49K
27 мая 2009 года
tiagat
9 / / 20.05.2009
если тебе не нужно лишь расширить свойства айтемсов для хранения пары "ключ-значение", то можешь воспользоваться таким примером:
Код:
using System;
using System.Windows.Forms;

namespace WindowsFormsApplication14
{
    public class MyItem
    {
        private string key;
        private string value;

        public MyItem()
        {
        }

        public MyItem(string key, string value)
        {
            this.Key = key;
            this.Value = value;
        }

        public string Key
        {
            get { return key; }
            set { key = value; }
        }

        public string Value
        {
            get { return this.value; }
            set { this.value = value; }
        }

        public override string ToString()
        {
            return value;
        }

    }

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.comboBox1.SelectedIndexChanged += new EventHandler(comboBox1_SelectedIndexChanged);
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.comboBox1.Items.Add(new MyItem("aa", "item 1"));
            this.comboBox1.Items.Add(new MyItem("bb", "item 2"));
            this.comboBox1.Items.Add(new MyItem("cc", "item 3"));
        }

        void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            MyItem mi = (MyItem)comboBox1.SelectedItem;
            MessageBox.Show("key: " + mi.Key + " value: " + mi.Value );
        }
    }
}
49K
27 мая 2009 года
tiagat
9 / / 20.05.2009
еще можно играться с Dictionary<string, string>
Код:
private void Form1_Load(object sender, EventArgs e)
        {
            Dictionary<string, string> myItems = new Dictionary<string, string>();
            myItems.Add("aa", "item 1");
            myItems.Add("bb", "item 2");
            myItems.Add("cc", "item 3");

            comboBox1.DisplayMember = "Value";
            comboBox1.ValueMember = "Key";
            comboBox1.DataSource = new BindingSource(myItems, null);

            //comboBox1.SelectedValue = "cc";
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            MessageBox.Show(comboBox1.SelectedValue.ToString());
        }
400
28 мая 2009 года
ArtemS2006
272 / / 12.01.2008
tiagat, спасибо, но это слишком "круто" для моего задания - делаю курсовую студентке 4го курса =)
а вообще уже сделал отдельный частный массив со значениями.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог