Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/48: Рейтинг темы: голосов - 48, средняя оценка - 4.65
0 / 0 / 0
Регистрация: 13.09.2011
Сообщений: 24
1

Как программно выделить нужную строку в ComboBox

15.06.2012, 11:14. Показов 9504. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В приложении определено диалоговое окно для редактирования записи набора данных.
Помимо прочего это окно содержит ComboBox (cboUserName), связанный с таблицей.
Причем в списке показано одно поле, а возвращается значение другого.

Привожу фрагмент кода:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//...
        public string UserName
        {
            get { return cboUserName.SelectedValue.ToString(); }
            set { cboUserName.SelectedValue = value; }
        }
//...
        private void FormEditUserFix_Load(object sender, EventArgs e)
        {
            //...
            OdbcConnection cnn = new OdbcConnection();
            cnn.ConnectionString = Program.cnnString;
 
            DataSet ds = new DataSet();
 
            OdbcDataAdapter daUser = new OdbcDataAdapter("SELECT iduser, nameuser FROM users
            ORDER BY nameuser", cnn);
 
            daUser.Fill(ds, "AllUsers");
 
            cboUserName.DataSource = ds.Tables[0];
            cboUserName.DisplayMember = ds.Tables[0].Columns[1].ToString();
            cboUserName.ValueMember = ds.Tables[0].Columns[0].ToString();
            //...
        }
//...
В форме ввода определено свойство UserName для связки с родительской формой.

Подскажите как сделать, чтобы при открытии окна редактирования в выпадающем списке
автоматически выбиралась нужная строка ?

Пробовал по разному определять св-во UserName - не помогает.

Заранее признателен.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.06.2012, 11:14
Ответы с готовыми решениями:

Visual C++ (MFC - простой диалог) ComboBox как програмно выбрать нужную строку?
Visual C++ (MFC - простой диалог) ComboBox как програмно выбрать нужную строку?

Как программно выделить строку в DataGridView
Как программно выделить строку в DataGridView? Подскажите плиз.

Как программно выделить строку в DataGrid?
Привет! Подобный вопрос уже задавал, но никто не ответил. Как же всё-таки программно выделить...

Как программно выделить строку в гриде?
Код такой: private void btnSearch_Click(object sender, EventArgs e) { ...

9
1245 / 1055 / 293
Регистрация: 07.03.2012
Сообщений: 3,245
15.06.2012, 11:21 2
так не выходит?
C#
1
comBobox1.SelectedIndex=1;
0
0 / 0 / 0
Регистрация: 13.09.2011
Сообщений: 24
15.06.2012, 11:48  [ТС] 3
Дело в том, что индекс-то заранее не известен. Зато известен, к примеру, iduser = 5.
Нужно, чтобы в области ввода выпадающего списка был показан username, соответствующий
этому ID.
0
6280 / 3565 / 898
Регистрация: 28.10.2010
Сообщений: 5,926
15.06.2012, 12:02 4
Привяжите ComboBox к BindingSource и у BindingSource используйте метод Find
0
0 / 0 / 0
Регистрация: 13.09.2011
Сообщений: 24
15.06.2012, 13:41  [ТС] 5
Цитата Сообщение от Петррр Посмотреть сообщение
Привяжите ComboBox к BindingSource и у BindingSource используйте метод Find
А как в этом случае задать DisplayMember и ValueMember ?
0
6280 / 3565 / 898
Регистрация: 28.10.2010
Сообщений: 5,926
15.06.2012, 13:46 6
Почти также как и раньше.
0
0 / 0 / 0
Регистрация: 13.09.2011
Сообщений: 24
15.06.2012, 13:50  [ТС] 7
Цитата Сообщение от Петррр Посмотреть сообщение
Почти также как и раньше.
Так же не получается. Нельзя ли привести пример ?
0
6280 / 3565 / 898
Регистрация: 28.10.2010
Сообщений: 5,926
15.06.2012, 14:19 8
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SqlCeConnection connection = new SqlCeConnection();
connection.ConnectionString = "Data Source=D:\\Northwind.sdf";
SqlCeDataAdapter adapter = new SqlCeDataAdapter("SELECT * FROM Products", connection);
dataSet = new DataSet();
adapter.Fill(dataSet, "Products");
bindingSource = new BindingSource(dataSet, "Products");
comboBox1.DataSource = bindingSource;
comboBox1.DisplayMember = "Product Name";
//comboBox1.ValueMember = dataSet.Tables[0].Columns[0].ToString();
 
/*****/
 
 
// Указывает ID товара и перемещаемя на нужную позицию
bindingSource.Position = bindingSource.Find("Product ID", 12);
0
0 / 0 / 0
Регистрация: 13.09.2011
Сообщений: 24
15.06.2012, 16:01  [ТС] 9
Извиняюсь, но не совсем очевиден источник значения "12" в последней строке.
В описании метода Find он должен иметь тип object. Когда я в качестве этого параметра
использую свойство формы, в моем примере UserName, выдается сообщение о неверном
формате строки. Как тогда правильно описать свойство ?

Добавлено через 3 минуты
И еще. А как быть с ValueMember ? Т.е. как вернуть нужное значение ?
0
0 / 0 / 0
Регистрация: 13.09.2011
Сообщений: 24
18.06.2012, 16:03  [ТС] 10
Спасибо всем, кто откликнулся.
Проблема решена с помощью метода ComboBox.FindString(string)
и без BindingSource.
0
18.06.2012, 16:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.06.2012, 16:03
Помогаю со студенческими работами здесь

Выделить нужную строку в RichBox!
Привет))) ребята вот как выделить мне добавляему строку красным? а другую Синим? Добавляю вот как:...

Выделить нужную строку в ValueListEditor
Здравствуйте! Ребята, подскажите, по такому вопросу, использую компонент ValueListEditor для...

Как выделить строку в ComboBox?
Привет всем! Как я понял, стандартный ComboBox не умеет выделять нужные строки, например, жирным...

Как выделить программно первую строку listview?
Подскажите как выделить программно первую строку listview?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru