none
Изменить значения Combobox на другие RRS feed

  • Вопрос

  • Имеется компонент Combobox выводящий значение логического поля. Необходимо что бы эти значение можно было поменять на другие? Попробовал через свойтсво Format (не получилось):

    if (e.Value.ToString() == "True")

    {

        e.Value = "М";

    }

    else

    {

        e.Value ="Ж";

    }

    • Перемещено Tagore Bandlamudi 2 октября 2010 г. 21:47 MSDN Forums consolidation (От:Разработка Windows-приложений)
    28 апреля 2010 г. 4:36

Ответы

  •         public void InitCombo()
            {
                Dictionary<bool, string> dt = new Dictionary<bool, string>();
                dt.Add(true, "Да");
                dt.Add(false, "Нет");
                ComboBox cb = new ComboBox();
                cb.DataSource = new BindingSource(dt, null);
                cb.ValueMember = "Key";
                cb.DisplayMember = "Value";
                this.Controls.Add(cb);
                cb.SelectedValueChanged += new EventHandler(cb_SelectedValueChanged);
            }

            void cb_SelectedValueChanged(object sender, EventArgs e)
            {
                MessageBox.Show(String.Format("Выбрано значение: {0}, показыается: {1}", ((ComboBox)sender).SelectedValue.ToString(), ((ComboBox)sender).Text));
            }
    • Помечено в качестве ответа Alexsander Maltcev 29 апреля 2010 г. 9:18
    28 апреля 2010 г. 12:33
    Модератор

Все ответы

  •         public void InitCombo()
            {
                Dictionary<bool, string> dt = new Dictionary<bool, string>();
                dt.Add(true, "Да");
                dt.Add(false, "Нет");
                ComboBox cb = new ComboBox();
                cb.DataSource = new BindingSource(dt, null);
                cb.ValueMember = "Key";
                cb.DisplayMember = "Value";
                this.Controls.Add(cb);
                cb.SelectedValueChanged += new EventHandler(cb_SelectedValueChanged);
            }

            void cb_SelectedValueChanged(object sender, EventArgs e)
            {
                MessageBox.Show(String.Format("Выбрано значение: {0}, показыается: {1}", ((ComboBox)sender).SelectedValue.ToString(), ((ComboBox)sender).Text));
            }
    • Помечено в качестве ответа Alexsander Maltcev 29 апреля 2010 г. 9:18
    28 апреля 2010 г. 12:33
    Модератор
  • Все равно проблемы. Значение поля получилось поменять, а вот при перемещениям по записям срабатывает когда перемещаемся с true на false, а когда с true на true или false на false, то так и отображается true или false и подмены не происходит. Может быть проблема из-за логического поля? База данных Access. 

    28 апреля 2010 г. 22:21
  • Напрашиваются 2 варианта (если я тебя правильно понял)

    1. Добавить таблицу-справочник с расшифровкой значения и бинидить ее.

    2. Отвязать ComboBox от базы и обрабатывая событие изменения положения в таблице менять SelectedValue у ComboBox'а

    29 апреля 2010 г. 8:26
    Модератор
  • Списибо все разобрался. У себя с методами перепутал. Выше отвечанный вариант помог.

    29 апреля 2010 г. 9:18