Модераторы: diadiavova, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ComboBox - альтернативный выбор items 
:(
    Опции темы
vuhu
Дата 9.11.2010, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 8.11.2010

Репутация: нет
Всего: нет



здравствуйте
задача токая:
Код


if label1.text = "продавцы" then 
   combobox1... 'чтоб видовал на вибор список продовцов
   else
   combobox1... 'чтоб видовал на вибор список покупателей
end if



как сделать чтоб варианты выбора менялись при присвоении разных значении label1 (продавцы, покупатели) если надо списки вибора прописать в коде, и если надо взять из sql database?
PM MAIL   Вверх
diadiavova
Дата 9.11.2010, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Это можно сделать если сам список в комбобокс добавляется посредством привязки данных. Например список находится в таблице какого-нибудь датасета, привязка выполняется через BindingSource. В этом компоненте есть свойство Filter, оно позволяет отображать только те елементы, которые удовлетворяют параметрам фильтра.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
vuhu
Дата 9.11.2010, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 8.11.2010

Репутация: нет
Всего: нет



спосибо за инфо, но как будет виглядеть код? у меня с синтаксисом какието проблеми :( и если не брать из дб а прямо опредилить перечен в коде с уже известними покупателями и постовшиками (в том случае если мне не придется нечего добавлять к списку покупателей и постовшиков)?

Добавлено через 3 минуты и 43 секунды
еще раз извиняюсь за своие глупие вопросы. я слишком зеленый самоучка в програмирование  smile
PM MAIL   Вверх
diadiavova
Дата 9.11.2010, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Цитата(vuhu @  9.11.2010,  13:57 Найти цитируемый пост)
спосибо за инфо, но как будет виглядеть код?

Проще всего это сделать в дизайнере... и никакого кода smile .
Цитата(vuhu @  9.11.2010,  13:57 Найти цитируемый пост)
 и если не брать из дб а прямо опредилить перечен в коде с уже известними покупателями и постовшиками (в том случае если мне не придется нечего добавлять к списку покупателей и постовшиков)?

На самом деле это плохой вариант, не обязательно использовать БД, но данные от кода отделить все же надо. Можно например использовать хмл-документ. Но не в этом суть...если надо определить список прямо в коде, то от этого ровным счетом ничего не меняется. Ты можешь добавить все элементы в таблицу из кода.

Общий план таков:

Добавляешь в форму DataSet, в датасет добавляешь таблицу, в которой будет, например два столбца(скажем категория и значение). Добавляешь BindingSource, источником данных для него(свойство DataSource) устанавливаешь  свой DataSet, а источником данных для комбобокса будет этот BindingSource. Таблицу заполняешь в коде, так же не забуть у комбобокса установить свойство DataMember. А для того, чтобы отфильтровать значения используй свойство Filter этого BindingSource'а. Как с ним работать описано в документации, там и примеры есть

http://msdn.microsoft.com/ru-ru/library/sy...rce.filter.aspx


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
vuhu
Дата 10.11.2010, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 8.11.2010

Репутация: нет
Всего: нет



Цитата(diadiavova @  9.11.2010,  14:22 Найти цитируемый пост)
Таблицу заполняешь в коде


Kak?

PM MAIL   Вверх
diadiavova
Дата 10.11.2010, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



У таблицы есть свойство Rows, оно возвращает коллекцию строк, добавляй строки в коллекцию так
http://msdn.microsoft.com/ru-ru/library/9yfsd47w.aspx
или так
http://msdn.microsoft.com/ru-ru/library/07wwak56.aspx



--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
vuhu
Дата 10.11.2010, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 8.11.2010

Репутация: нет
Всего: нет



ураа smile нашол более логки способ:
Код

Dim salarot(1) As String
        salarot(0) = "a1"
        salarot(1) = "a2"

        Dim salarosh(2) As String
        salarosh(0) = "b1"
        salarosh(1) = "b2"
        salarosh(2) = "b3"
        If TextBox.Text = "prodavci" Then
            cbsalaro1.Items.Clear()
            cbsalaro1.Items.AddRange(salarosh)
        Else
            cbsalaro1.Items.Clear()
            cbsalaro1.Items.AddRange(salarot)
        End If

чуть после надо будет думат как сделать тоже самое через DataBase smile
diadiavova, спосибо за советы.
PM MAIL   Вверх
vuhu
Дата 11.11.2010, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 8.11.2010

Репутация: нет
Всего: нет



ok smile пошли дальше

создал базу similikosbaza1.sdf
table: "obiekti"
columns: "nomer", "status", "imia"

в номере-пориадкови номер записи
в статусе - продавец или покупатель
а в имени - имена продавцов и покупателеи.

задача: после выбора в ComboBox1 покупателя в ComboBox2 видать список покупателей, а при выборе продовцов - список продовцов.
как прописать в коде?
PM MAIL   Вверх
diadiavova
Дата 11.11.2010, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Цитата(vuhu @  11.11.2010,  19:03 Найти цитируемый пост)
как прописать в коде?

Точно так же. Для всех комбобоксов создай один обработчик выбора значения. В нем и сформируй строку фильтра по всем параметрам и передай ее свойству Filter. Условия объединяй оператором AND (как в WHERE SQL-запроса).


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
vuhu
Дата 11.11.2010, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 8.11.2010

Репутация: нет
Всего: нет



:( на словах все понятно, но в коде не получается :( 
PM MAIL   Вверх
diadiavova
Дата 11.11.2010, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Цитата(vuhu @  11.11.2010,  22:28 Найти цитируемый пост)
:( на словах все понятно, но в коде не получается :(  

Ну ты хотябы приведи код smile 


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
vuhu
Дата 12.11.2010, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 8.11.2010

Репутация: нет
Всего: нет



cbvis1.Items.Add = Similikosbaza1DataSet.obieqtebi.saxeliColumn не работает cbvis1.Items.AddRange(Similikosbaza1DataSet.obieqtebi.saxeliColumn) не работает 
cbvis1.Items.Add(Similikosbaza1DataSet.obieqtebi.saxeliColumn) не работает хотя ошибку не выдает
перепробовал и другие варианты но резултат идентични :(
PM MAIL   Вверх
diadiavova
Дата 12.11.2010, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Цитата(vuhu @  12.11.2010,  16:38 Найти цитируемый пост)
cbvis1.Items.Add = Similikosbaza1DataSet.obieqtebi.saxeliColumn 

Вообще-то Add - это метод и ему надо передавать значения через параметры, а не присваивать что-то
Цитата(vuhu @  12.11.2010,  16:38 Найти цитируемый пост)
cbvis1.Items.Add(Similikosbaza1DataSet.obieqtebi.saxeliColumn)

Передаются этому методу строки(то есть данные), а не колонки

И какое это имеет отношение к вопросу а фильтрации? smile 


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
vuhu
Дата 12.11.2010, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 8.11.2010

Репутация: нет
Всего: нет



до филтрации надо итемс брат научится а потом начну експериментировать с филтрации smile
PM MAIL   Вверх
diadiavova
Дата 12.11.2010, 20:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Если ты их добавляешь прямо в комбобокс, а не так как я говорил, то фильтрация не получится.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума VB .NET
diadiavova
  • Прежде чем задать вопрос, воспользуйтесь поиском: возможно Ваш вопрос уже обсуждался и на него был получен ответ.
  • Если такой же вопрос не найден, не стоит задавать свой вопрос в любую тему, создайте новую.
  • Заголовок темы должен отображать ее суть.
  • Содержание поста должно описывать проблему понятно, но в то же время, по возможности, лаконично. Сначала следует описать суть вопроса, потом можно привести пример кода, не вынуждайте других участников угадывать в чем Ваша проблема - телепатов здесь нет.
  • Будьте взаимно вежливы и дружелюбны.
  • При оформлении сообщений используйте форматирование, примеры кода заключайте в теги [CODE=vbnet][/CODE].
  • Также ознакомьтесь с общими правилами, действующими на всем форуме.
  • Если вопрос решен, не забывайте помечать тему решенной(вверху темы есть ссылка). Кроме того, если Вы хотите отблагодарить участников, оказавших помощь в решении, можно повысить им репутацию, в случае, если у Вас менее 100 сообщений в форуме и функция изменения репутации Вам недоступна, можете написать сюда.
  • Общие вопросы по программированию на платформе .NET обсуждаются здесь.
  • Литература по VB .NET обсуждается здесь.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0587 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.