Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: ComboBox - интимные связи Добавлено: 13.08.05 23:48  

Автор вопроса:  пенсионер
Имею ТРИ ComboBox-а на форме, в первом список из 5-ти значений, при выборе одного варианта, во втором ComboBox-е, появляется список из 5-ти значений, в каждом списке уже 10 значений.(Соответственно, второй ComboBox имеет доступ к 5-ти спискам из 10-ти значений)
При этом в 3-ем ComboBox-е, в зависимости, от выбора во втором ComboBox-е, должен появиться тоже соответствующий список. (Но он уже имеет 10 видов списков, так как во 2-ом ComboBox-е, 10-ть вариантов выбора)
С задачей внесения списков в первый ComboBox, я бы справился легко, но внесение списков во-второй вызывает проблему. Проверку на условие осушествил бы методом If Then, или Case, но от куда мне считывать данные в ComboBox? Создать массивы? Но их видов получается более 15. Но главная проблема дальше > ВНЕСЕНИЕ И ЗАМЕНА данных в ComboBox.
Я хотел бы осуществлять это уже при работе самой программы.На этапе разработки мне не известны списки значений для ComboBox-ов. Как добавлять новые значения в ComboBox-ы используя тот же TexBox? я знаю такой вариант -
ComboBox2.Items.Add(TextBox1.Text)
Но ведь у меня несколько видов списов!!! К тому же как сохранять введённые значения в ComboBox? После закрытия формы они исчезают.
ГЛАВНЫЙ ВОПРОС - как грамотно построить связь между тремя ComboBox-ми, если возможных списком более 15, и где собственно говоря их разместить,
ведь внесение, удаление и замена, будет производиться при работе самой программы. Сохранять и считывать из текстового файла совсем не хочется.
Где эта присловутая "репид разработка", так хочется воспользоваться ею...

Ответить

  Ответы Всего ответов: 8  

Номер ответа: 1
Автор ответа:
 HOOLIGAN



Вопросов: 0
Ответов: 1066
 Профиль | | #1 Добавлено: 14.08.05 03:17
пресловутая "рапид разработка" в основном касается визуальной части разработки (создание интерфейса).
А от необходимости создать алгоритм, правильный, простой и понятный, никто избавить не обещал :)

Может использовать базу данных для твоих combobox'ов ?

Ответить

Номер ответа: 2
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #2 Добавлено: 14.08.05 04:08
Имею ТРИ ComboBox-а на форме, в первом список из 5-ти значений, при выборе одного варианта, во втором ComboBox-е, появляется список из 5-ти значений, в каждом списке уже 10 значений.(Соответственно, второй ComboBox имеет доступ к 5-ти спискам из 10-ти значений)
При этом в 3-ем ComboBox-е, в зависимости, от выбора во втором ComboBox-е, должен появиться тоже соответствующий список. (Но он уже имеет 10 видов списков, так как во 2-ом ComboBox-е, 10-ть вариантов выбора)


Извини, но нифига из этого описания непонятно.
Давай, по-простому, простыми предложениями, и люди к тебе потянутся.

Из того, что я понял - тебе будет нужна вложенная объектная иерархия, но точнее тебе никто не скажет, пока ты толком не изложишь, что тебе нужно.

Опять таки - где хранить - тоже вопрос неоднозначный, конечно, универсальное решение - XML, но более точно можно будет ответить, когда ты связно расскажешь, что ты такое делаешь.

Ответить

Номер ответа: 3
Автор ответа:
 пенсионер



Вопросов: 2
Ответов: 10
 Профиль | | #3 Добавлено: 14.08.05 16:29
Извини, но нифига из этого описания непонятно.
  ОК, тогда наверное лучше один раз увидеть чем три раза написать?
 Но как же мне это показать, если я как раз и спрашиваю как это сделать в VB.NET?
Имея поверхностные знания в VB, решил создать примерчик в Excel.Посмотрите его, там у меня вроде всё получилось наглядно, а главное работает так как я бы хотел.
Перед началом, я засёк время, интересно было сколько минут я потрачу на это. Оказалось ровно 38 минут. А я думал напишу на форуме "...Вот за 10 мин. склепал пример в VBA, а в VB.NET сижу второй день...". Но это начиная с ввода данных в ячейки, и заканчивая исправлением парочки "багов". Единственное не делал ввод новых данных, удаление и изменение старых, во время работы программы. Но это не так сложно, я такое уже делал. Однако в VB.NET, я не знаю как это осуществить.
Естественно макросы должны быть включены, а главные коды я расположил в Модуле.
Скачать пример - http://www.archive7.nm.ru
из директории "Примеры".
Теперь слово за Вами. Вопросы у меня остались те же.

Ответить

Номер ответа: 4
Автор ответа:
 пенсионер



Вопросов: 2
Ответов: 10
 Профиль | | #4 Добавлено: 15.08.05 21:27
Ну что, даже на наглядном примере тоже ничего не понятно?
Ну тогда я больше не знаю как объяснить...

Ответить

Номер ответа: 5
Автор ответа:
 student-uni



Вопросов: 122
Ответов: 257
 Профиль | | #5 Добавлено: 16.08.05 14:46
Ispolsui ADO.NET
text ochen prost
washno prawilno rasstawit swjasi s ComboBox2

-------------------------------
OleDbConnection1.Open()
        ;DataSet31.Clear()
        OleDbDataAdapter2.SelectCommand.Parameters("connectiongroup_id";).Value = ComboBox1.SelectedValue
        OleDbDataAdapter2.Fill(DataSet31)
        OleDbDataAdapter2.Update(DataSet31, "verbindung";)
        OleDbConnection1.Close()
-----------------------------

Wot sobstwenno i wse
podrobnochitai
http://bbs.vbstreets.ru/viewtopic.php?t=18476

Ответить

Номер ответа: 6
Автор ответа:
 пенсионер



Вопросов: 2
Ответов: 10
 Профиль | | #6 Добавлено: 16.08.05 21:37
Спасибо, так ни разу ещё не пробовал. Да, не легко мне будет.
По обновлению записей надеюсь разберусь.

Последнюю подсказочку если можно -
при создании массива вот таким методом
        Strng = "№" & vbCrLf ' Заголовок
        ;Dim i As Integer
        ;Dim DataArray(20, 5) As Long
        For i = 0 To UBound(DataArray)
            ;DataArray(i) = (i + 1)
            Strng = Strng & DataArray(i) & vbCrLf
        Next
        TextBox1.Text = Strng ' Отображение
Неправильно создаю массив, а именно - "Число индексов меньше числа измерений индексированного массива". О чём это? Что делаю не правильно?
И как после внесения данных в массив, сохранить эти данные после закрытия программы?
(Наверное вопросы у меня совсем уж детские )
              Спасибо, буду рад любой подсказке.

Ответить

Номер ответа: 7
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #7
Добавлено: 16.08.05 23:10
UBound(arrayname[, dimension])

arrayname ->
Required. Name of the array variable; follows standard variable naming conventions.

dimension ->
Optional; Variant (Long). Whole number indicating which dimension's upper bound is returned. Use 1 for the first dimension, 2 for the second, and so on. If dimension is omitted, 1 is assumed.

Sample:

Dim A(1 To 100, 0 To 3, -3 To 4)

Statement Return Value
UBound(A, 1) 100
UBound(A, 2) 3
UBound(A, 3) 4


PS
надеюсь понятно :)

Ответить

Номер ответа: 8
Автор ответа:
 student-uni



Вопросов: 122
Ответов: 257
 Профиль | | #8 Добавлено: 16.08.05 23:44
ДЛя этого надо понимать принцип работы адо.нет

Сначала делается коннект с базой
Потом создаётся дата адаптер
который собственно и выполняет запрос.
Потом самое интересное,
выполненный запрос из дата адаптера
надо вдуть в дата-сет.
Дата сет это изобретение майкрософт
временная таблица для хранения данных
которая собственно является копией
вашей базы. А зачем она нужна ?
А затем, что АдоНет система, БД
где нет постоянного соединения с базой,
т.н. отсоединённая система.
Это увеличивает производительность.
Работа идёт с ДатаСетом, а не с базой.
А уж из к дата сетам присоединяются
визуальные компоненты типа Комбо бокс.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам