Форум программистов, компьютерный форум, киберфорум
Наши страницы

C# Windows Forms

Войти
Регистрация
Восстановить пароль
 
 
Deserter
1 / 1 / 0
Регистрация: 30.11.2016
Сообщений: 61
#1

Как пользоваться comboBox - C#

01.12.2016, 20:49. Просмотров 856. Ответов 18
Метки нет (Все метки)

Есть програмка которая выводит таблицу истинности с кол-вом n элементов. Требуется: чтобы в comboBox можно было выбрать номер столбца и сравнить его со вторым выбранным столбцом. Сам процесс сравнения я представляю как делать, но вот все что касается comboBox - то проблематично, т.к о нем я ничего не знаю. Если не сложно, разжуйте поподробнее пожалуйста. Заранее спасибо.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.12.2016, 20:49
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как пользоваться comboBox (C#):

Как сделать чтобы при выборе в combobox , менялись значения в других combobox? - C#
Есть два combobox. Как их сделать зависимыми друг от друга. Что бы при выборе одного combobox менялись данные в другом. К примеру: В...

Как сделать чтобы при выборе в comboBox, выводилось значение в другом comboBox? - C#
Здравствуйте! Есть таблица из 2 столбца (id, name). Как сделать чтобы при выборе из первого comboBox вывести значение другому comboBox?...

C# Как сделать чтобы при выборе в combobox , менялись значения в других combobox? - C#
Приветствую коллеги. Только встал на путь программирования и столкнулся с дилеммой. Есть форма, на ней 4 combobox. В каждом combobox по...

Как сделать ComboBox зависимым от другого ComboBox - C#
Имеются два combobox'а в обоих одни и теже данные города отправки и прибытия как сделать их зависимыми друг от друга Допустим если в...

ComboBox.DataSource и DataView: как заполнить ComboBox - C#
Добрый вечер! Прочитал в книге, что "В результирующем DataView, будут видимы все столбцы исходный таблицы". То есть предположим если мы...

RowFilter и как им пользоваться - C#
Добрый вечер! Есть табличка datatable содержащая 3 столбика (num int, fio varchar, count int). Эта табличка соединяется с...

18
zna926
322 / 298 / 86
Регистрация: 24.09.2013
Сообщений: 1,756
Записей в блоге: 1
02.12.2016, 02:19 #2
ComboBox - это выпадающий список, а, например, в ListBox этот список всегда открыт. Действия с ними аналогичны
А теперь желательно более понятно описать задачу
0
Deserter
1 / 1 / 0
Регистрация: 30.11.2016
Сообщений: 61
02.12.2016, 12:31  [ТС] #3
Слева выведена таблица истинности которую сгенерировала программа в массив. Мне нужно в двух comboBox-ах выбрать 2 столбца этой таблицы (массива) и с помощью кнопок сделать сравнение между ними. Т.е мне по сути надо понять как сделать так, чтобы пользователь мог выбрать из n кол-ва столбцов один (вводится пользователем), а затем как нибудь считать что выбрал пользователь. Надеюсь обьяснил понятно)
0
Миниатюры
Как пользоваться comboBox  
zna926
322 / 298 / 86
Регистрация: 24.09.2013
Сообщений: 1,756
Записей в блоге: 1
02.12.2016, 14:19 #4
"Слева выведена таблица истинности которую сгенерировала программа в массив. Мне нужно в двух comboBox-ах выбрать 2 столбца этой таблицы (массива) и с помощью кнопок сделать сравнение между ними. Т.е мне по сути надо понять как сделать так, чтобы пользователь мог выбрать из n кол-ва столбцов один (вводится пользователем), а затем как нибудь считать что выбрал пользователь. Надеюсь обьяснил понятно) "

Да, это понятно Вам.

1 Что должно быть в комбобоксах,
2. n - это количество столбцов или строк
3. Что означает " в двух comboBox-ах выбрать 2 столбца этой таблицы "
4. "с помощью кнопок сделать сравнение между ними" , как это?
и т.д.
0
Deserter
1 / 1 / 0
Регистрация: 30.11.2016
Сообщений: 61
02.12.2016, 18:34  [ТС] #5
1)в комбобоксах должны быть номера столбцов. 2)n - это кол-во столбцов. 3)"Что означает " в двух comboBox-ах выбрать 2 столбца этой таблицы "" - это означает что мы в первом комбобоксе выбираем первый столбец для сравнения, во втором второй. 4) ""с помощью кнопок сделать сравнение между ними" , как это?" - с помощью кнопок "or", "and", "xor", "inversion" которые уже действуют, осталось только передать им два значения: номер первого и второго столбца. мне нужно в первом комбобоксе выбрать номер первого столбца для сравнения, во втором - второй, и считать выбранные столбцы.
0
zna926
322 / 298 / 86
Регистрация: 24.09.2013
Сообщений: 1,756
Записей в блоге: 1
02.12.2016, 20:21 #6
Почти понятно, но, как я понимаю, есть 2 столбца и в каждом n рядов ?
0
elrond
5 / 5 / 2
Регистрация: 03.11.2015
Сообщений: 30
02.12.2016, 21:49 #7
1) Заходишь в св-ва comboBox.
2) Ищешь пункт "Коллекция", и в СТОЛБИК пишешь необходимые тебе значения. Например
Блаблабла
Блублублу
3) Само использование:
C#
1
2
3
if (comboBox1.Text == "Блаблабла")  { textBox1.Text = "Бла бла бла"}
             else  {
if (comboBox1.Text == "Блублублу")  { textBox1.Text = "Блу блу блу"}    }
и так далее.
В твоем случае сложнее. Тебе нужно что бы коллекц... стоп. В коллекцию комбобоксов ставишь номер столбца.
А дальше пойдет примерно так:
C#
1
2
if (comboBox1.Text == "1")  { /*а здесь одномерный массиву A[1][n] в 1 столбец и n строк, где n количество строк в исходном массиве присваиваются значения 1ого столбца исходного массива.(и здесь можно не использовать esle {})*/ }
if (comboBox1.Text == "2")  { /*а здесь ** значения 2ого столбца исходного массива( ну и так далее)*/ }
для второго комбобокса прописывается тоже самое. но вот втыкать этот код лучше всего в кнопку.
То есть, в описании кнопки
C#
1
2
3
4
5
private void button1_Click(object sender, EventArgs e)
        { /* проверка первого комбобокса, и присваивание к массиву A[][]
               проверка второго комбобокса, и присваивание к массиву B[][]
               сравнение по выбранному способу (соотносительно кнопки)
        }
Как то так.
Хотя и не очень красиво.
0
zna926
322 / 298 / 86
Регистрация: 24.09.2013
Сообщений: 1,756
Записей в блоге: 1
02.12.2016, 22:48 #8
Финал!
В комбобоксах, насколько я знаю, есть, как и в листбоксах, только 1 столбец.
Поэтому можно вполне обойтись без них, а при большом количестве столбцов использовать датагридвью
Желаю успеха.
0
Deserter
1 / 1 / 0
Регистрация: 30.11.2016
Сообщений: 61
03.12.2016, 00:53  [ТС] #9
Мне не совсем понятно... Мне нужно как-то сделать так чтобы можно было выбрать один столбец из того количества, которое введет пользователь... допустим ввел он 8, и выбирает он 1,2,3,4,5,6,7 или 8-ой стобец.
0
elrond
5 / 5 / 2
Регистрация: 03.11.2015
Сообщений: 30
03.12.2016, 19:16 #10
Цитата Сообщение от Deserter Посмотреть сообщение
Мне не совсем понятно... Мне нужно как-то сделать так чтобы можно было выбрать один столбец из того количества, которое введет пользователь... допустим ввел он 8, и выбирает он 1,2,3,4,5,6,7 или 8-ой стобец.
в левом окне у вас массив, верно? в комбобоксах вы выбираете только номер столбца! а дальше уже идет присвоение элементов этого столбца к новому массиву. новые массивы и сравниваются? или я не правильно понял вашу задачу?

Добавлено через 4 минуты
Цитата Сообщение от zna926 Посмотреть сообщение
Финал!
В комбобоксах, насколько я знаю, есть, как и в листбоксах, только 1 столбец.
Поэтому можно вполне обойтись без них, а при большом количестве столбцов использовать датагридвью
Желаю успеха.
а зачем датагрид? у него же не работа с базами данных??
а в комбобоксах и листбоксах коллекция записана в столбец. для выбора номера столбца исх.матрицы самое то.
В предложенном мной коде в кбоксе выбирается именно номер столбца. посмотрите внимательно.
0
elrond
5 / 5 / 2
Регистрация: 03.11.2015
Сообщений: 30
04.12.2016, 22:57 #11
Цитата Сообщение от Deserter Посмотреть сообщение
Мне нужно как-то сделать так чтобы можно было выбрать один столбец из того количества, которое введет пользователь... допустим ввел он 8, и выбирает он 1,2,3,4,5,6,7 или 8-ой стобец.
Уточнение. Количество столбцов в исходной матрице будет равно введенному пользователем числу?
Чуть код усложняется, если нужно пиши
0
Deserter
1 / 1 / 0
Регистрация: 30.11.2016
Сообщений: 61
04.12.2016, 23:11  [ТС] #12
мне нужно будет передать номер столбца в функцию, в которой просто напросто столбец из существующего массива будет считываться, сравниваться и только уже после этого будет генерироваться новый массив с результатами

Добавлено через 7 минут
Цитата Сообщение от elrond Посмотреть сообщение
Уточнение. Количество столбцов в исходной матрице будет равно введенному пользователем числу?
да. Т.е пользователь вводит кол-во столбцов.
0
elrond
5 / 5 / 2
Регистрация: 03.11.2015
Сообщений: 30
05.12.2016, 22:42 #13
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Deserter Посмотреть сообщение
мне нужно будет передать номер столбца в функцию, в которой просто напросто столбец из существующего массива будет считываться, сравниваться и только уже после этого будет генерироваться новый массив с результатами
А в комбобоксах выбор столбцов для сравнения, верно?
Оххо.. что то туго до меня доходит. В общем так:
1. Вводишь число. (например 5)
2. Генерируется матрица в эти самые 5 столбцов. (все пока верно?)
3. В комбобоксах выбираешь номера столбцов для последующего действия. как то 1) Or; 2) And; 3) Xor; 4) Inversion.
4. Собственно тыкаешь кнопку с необходимым действием (тоже верно?)
5. Вывод результата в виде матрицы в правое поле. (и тут верно?)

Примем что я правильно понял задание.
Алгоритм в коде такой.

1. Прием введенного числа (Пусть будет переменная NUM)
2. Генерация исходной матрицы (примем, что ты это уже написал( изв. что на "ты")
3. Заполняем коллекции comboBox1 и comboBox1 (ну или какие там у тебя номера (этот код можно воткнуть в кнопку "Enter" и, как я понимаю генерация исх. массива тоже в ней):
C#
1
2
3
4
5
6
7
8
9
10
11
comboBox1.Items.Clear(); // очищаем память коллекции.
for (int i = 1; i <= NUM; i++)
            {
                comboBox1.Items.Add("i");// вот тут я точно не помню как надо прописать. Но надеюсь суть понятна.
            }
comboBox2.Items.Clear();
for (int i = 1; i <= NUM; i++)
            {
                comboBox2.Items.Add("i");// вот тут я точно не помню как надо прописать. Но надеюсь суть понятна.
            }
/* по логике должно работать. но не проверял. в моей проге было ручное заполнение comboBox`а, так что если что отпишись*/
Добавлено через 11 минут
Исправляю третий пункт. Так как проверил:
3. Заполняем коллекции comboBox1 и comboBox1 (ну или какие там у тебя номера (этот код можно воткнуть в кнопку "Enter" и, как я понимаю генерация исх. массива тоже в ней):
C#
1
2
3
4
5
6
7
8
9
10
11
comboBox1.Items.Clear(); // очищаем память коллекции.
for (int i = 1; i <= NUM; i++)
            {
                comboBox1.Items.Add(i);// доводим элементы до введенного числа. Но надеюсь суть понятна.
            }
comboBox2.Items.Clear();
for (int i = 1; i <= NUM; i++)
            {
                comboBox2.Items.Add(i);
            }
/* данный код только что проверил у себя. Работает.*/
Добавлено через 30 минут
4. Вот теперь код в кнопки.
C#
1
2
3
4
5
6
7
8
9
private void button3_Click(object sender, EventArgs e) // у тебя свой номер кнопки
        {
            //создаем две доп. переменные для последующего использования выбранного в comboBox`е числа.
            int cB1, cB2;
            cB1= Convert.ToInt16(comboBox1.Text); // это будет номер первого твоего столбика из матрицы
            cB2 = Convert.ToInt16(comboBox2.Text); // это  номер второго столбика
            /*сравнивать можно будет как две матрицы в один столбец и n строк. то есть задаешь две матрицы.
в первую переносишь значение первого (или какой там число будет в переменной cB1), во вторую матрицу соответственно второго столбца. и производишь необходимое тебе действие */
/*то есть этот код есть в каждой кнопке. код на на создание двух новых массивов уж сам напишешь*/
есть еще вопросы? все понятно?

Добавлено через 30 минут
4. Вот теперь код в кнопки.
C#
1
2
3
4
5
6
7
8
9
private void button3_Click(object sender, EventArgs e) // у тебя свой номер кнопки
        {
            //создаем две доп. переменные для последующего использования выбранного в comboBox`е числа.
            int cB1, cB2;
            cB1= Convert.ToInt16(comboBox1.Text); // это будет номер первого твоего столбика из матрицы
            cB2 = Convert.ToInt16(comboBox2.Text); // это  номер второго столбика
            /*сравнивать можно будет как две матрицы в один столбец и n строк. то есть задаешь две матрицы.
в первую переносишь значение первого (или какой там число будет в переменной cB1), во вторую матрицу соответственно второго столбца. и производишь необходимое тебе действие */
/*то есть этот код есть в каждой кнопке. код на на создание двух новых массивов уж сам напишешь*/
есть еще вопросы? все понятно?

Добавлено через 3 минуты
ах да.. еще в начале вот такое надо внести
C#
1
2
comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
            comboBox2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
что бы так получилось. Это что бы нельзя было писать в боксах, а только делать выбор

C#
1
2
3
4
5
6
public Form1()
        {
            InitializeComponent();
            comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
            comboBox2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
        }
1
Deserter
1 / 1 / 0
Регистрация: 30.11.2016
Сообщений: 61
06.12.2016, 21:32  [ТС] #14
Цитата Сообщение от elrond Посмотреть сообщение
А в комбобоксах выбор столбцов для сравнения, верно?
Оххо.. что то туго до меня доходит. В общем так:
1. Вводишь число. (например 5)
2. Генерируется матрица в эти самые 5 столбцов. (все пока верно?)
3. В комбобоксах выбираешь номера столбцов для последующего действия. как то 1) Or; 2) And; 3) Xor; 4) Inversion.
4. Собственно тыкаешь кнопку с необходимым действием (тоже верно?)
5. Вывод результата в виде матрицы в правое поле. (и тут верно?)
Да, понял ты верно... Код вроде понятен, ближайшее время попробую реализовать... Спасибо огромное за помощь...)
0
elrond
5 / 5 / 2
Регистрация: 03.11.2015
Сообщений: 30
06.12.2016, 21:44 #15
Цитата Сообщение от Deserter Посмотреть сообщение
Да, понял ты верно... Код вроде понятен, ближайшее время попробую реализовать... Спасибо огромное за помощь...)
не за что)) взялся ради отвлечения от основного проекта, с которым полный ступор(

Добавлено через 4 минуты
если что пиши, подскажу
0
06.12.2016, 21:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.12.2016, 21:44
Привет! Вот еще темы с ответами:

Как пользоваться ProgressBar - C#
Ребят блин не пойму как пользоваться прогресс баром! Лист бокс иногда дюже долго заполняется хотел запилить процксс что бы пользовательне...

Как пользоваться консолью - C#
В некоторых кодах, частенько наблюдаю Console.WriteLine(&quot;f&quot;) Через данную команду ,смогли я выводить. Точнее просматривать массив...

checkedListBox как им пользоваться - C#
Привет народ. нужна ваша помощь. кто нибудь знает как пробежаться по всем элементам компонента checkedListBox и проверить на истинность...

Как пользоваться компонентом openFileDialog - C#
Здравствуйте! Мне нужно добавить элемент для открытия файлов, там где выбираешь путь к файлу. Что бы потом загрузить его куда мне надо. ...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru