Hp
0 / 0 / 1
Регистрация: 24.10.2014
Сообщений: 46
1

Как сделать, чтобы ячейки datagridview были combobox?

19.11.2016, 23:03. Показов 3460. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, пожалуйста, как сделать, чтобы ячейки datagridview были combobox?
Есть похожие вопросы с ответами, но для меня не подходит.
C#
1
2
3
4
5
6
7
for (int a = 0; a < Program.k; a++)
            {
                 for (int i = Convert.ToInt32(Program.startDay) + 2; i <= Convert.ToInt32(Program.stopDay) + 2; i++)
                        {
                               gridТабель.Rows[a].Cells[i].Value = "Н";
                        }
            }
так как число ячеек зависят от других значений. не смогла найти похожие примеры. подскажите, чтобы была не просто ячейка со значениями, а ячейка combobox
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.11.2016, 23:03
Ответы с готовыми решениями:

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

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

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

Как сделать чтобы radiobutton'ы были независимы друг от друга?
как сделать чтобы radiobutton'ы были независимы друг от друга?не используя Groupbox

13
8927 / 4839 / 1885
Регистрация: 11.02.2013
Сообщений: 10,246
20.11.2016, 01:44 2
Когда добавляешь столбцы, указывай тип DataGridViewComboBoxColumn
C#
1
gridТабель.Columns.Add(new DataGridViewComboBoxColumn());
1
Hp
0 / 0 / 1
Регистрация: 24.10.2014
Сообщений: 46
20.11.2016, 17:22  [ТС] 3
я так пыталась, но не выходит. у меня добавление обычных ячеек идёт вот так:
C#
1
2
3
4
5
6
7
8
9
10
if (cmbMonth.Text == "Октябрь")
            {
                gridТабель.Columns.Clear();
                foreach (var h in _header10)
                {
                    gridТабель.Columns.Add(h, h);
                }
                DateTime date = new DateTime(DateDTP.Value.Year, 10, DateDTP.Value.Day);
                DateDTP.Value = date;
            }
header это шапка, так как число ячеек зависит от шапки (число дней в месяце),
а эти параметры не получается задать , если писать так gridТабель.Columns.Add(new DataGridViewComboBoxColumn(h, h));
или как-то ещё можно?

Добавлено через 7 минут
а если вставлять так: gridТабель.Columns.Add(new DataGridViewComboBoxColumn());
то выдаёт ошибку: Недопустимое значение DataGridViewComboBoxCell
0
8927 / 4839 / 1885
Регистрация: 11.02.2013
Сообщений: 10,246
20.11.2016, 17:24 4
Hp, во-первых, используй форматирование кода в посте, ведь невозможно читать.
Во-вторых, поясни свою задачу. А то все эти кнопки-столбцы только с толку сбивают
1
Hp
0 / 0 / 1
Регистрация: 24.10.2014
Сообщений: 46
20.11.2016, 19:34  [ТС] 5
я так пыталась, но не выходит. у меня добавление обычных ячеек идёт вот так:
C#
1
2
3
4
5
6
7
8
9
10
if (cmbMonth.Text == "Октябрь")
{
gridТабель.Columns.Clear();
foreach (var h in _header10)
{
gridТабель.Columns.Add(h, h);
}
DateTime date = new DateTime(DateDTP.Value.Year, 10, DateDTP.Value.Day);
DateDTP.Value = date;
}
header это шапка, так как число ячеек зависит от шапки (число дней в месяце),
а эти параметры не получается задать , если писать так gridТабель.Columns.Add(new DataGridViewComboBoxColumn(h, h));
или как-то ещё можно?

Добавлено через 7 минут
а если вставлять так: gridТабель.Columns.Add(new DataGridViewComboBoxColumn());
то выдаёт ошибку: Недопустимое значение DataGridViewComboBoxCell
0
8927 / 4839 / 1885
Регистрация: 11.02.2013
Сообщений: 10,246
20.11.2016, 19:36 6
Hp, из твоего кода совершенно ничего нельзя понять, потому что неясно, что должно получиться. Сформулируй задачу свою
1
Hp
0 / 0 / 1
Регистрация: 24.10.2014
Сообщений: 46
20.11.2016, 19:53  [ТС] 7
Задание состоит в том, что нужно формировать табель с отметками явок. Их я хочу выбирать из выпадающего списка. Пока что строится просто табличка. Первые 3 столбца просто номер, фио, должность. А вот дальше должны быть ComboBox. И при том число ячеек зависит от числа дней в месяце.

я так пыталась, но не выходит. у меня добавление обычных ячеек идёт вот так:
C#
1
2
3
4
5
6
7
8
9
10
if (cmbMonth.Text == "Октябрь")
{
gridТабель.Columns.Clear();
foreach (var h in _header10)
{
gridТабель.Columns.Add(h, h);
}
DateTime date = new DateTime(DateDTP.Value.Year, 10, DateDTP.Value.Day);
DateDTP.Value = date;
}
header это шапка, так как число ячеек зависит от шапки (число дней в месяце),
а эти параметры не получается задать , если писать так
C#
1
gridТабель.Columns.Add(new DataGridViewComboBoxColumn(h, h));
или как-то ещё можно?

Добавлено через 7 минут
а если вставлять так:
C#
1
gridТабель.Columns.Add(new DataGridViewComboBoxColumn());
то выдаёт ошибку: Недопустимое значение
C#
1
DataGridViewComboBoxCell
0
Hp
0 / 0 / 1
Регистрация: 24.10.2014
Сообщений: 46
20.11.2016, 20:03  [ТС] 8
СЕЙЧАС ВЫГЛЯДИТ ТАК, НАДО, ЧТОБЫ БЫЛИ COMBOBOX , ГДЕ ЯВКИ - НЕЯВКИ.
Миниатюры
Как сделать, чтобы ячейки datagridview были combobox?  
0
Hp
0 / 0 / 1
Регистрация: 24.10.2014
Сообщений: 46
20.11.2016, 20:28  [ТС] 9
нашла код, но почему-то значений нет в combobox, и шапка пропадает.
1) выбираем столбец, из которого нам надо комбобокс сделать
2) вставляем перед ним столбец комбобоксовый как раз
3) проходим по всем строкам датагрида и заносим в комбобокс текущее значения и те которые нам нужны для выбора
4) удаляем старый столбец
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
27
for (int i = Convert.ToInt32(Program.startDay) + 2; i <= Convert.ToInt32(Program.stopDay) + 2; i++)
                {
                    for (var date1 = Program.startDate; date1 <= Program.stopDate; date1 = date1.AddDays(1))
                    {
                            DataGridViewComboBoxColumn d = new DataGridViewComboBoxColumn();
                            gridТабель.Columns.Insert(i, d);
                            string temp_str;
                            foreach (DataGridViewRow r in gridТабель.Rows)
                            {
                                DataGridViewComboBoxCell c = (DataGridViewComboBoxCell)r.Cells[i];
                                if (r.Cells[i + 1].Value != null)
                                {
                                    temp_str = r.Cells[i + 1].Value.ToString();
                                    c.Items.Add(temp_str);
                                    c.Value = c.Items[0];
                                }
                                c.Items.Add("Я 0");
                                c.Items.Add("Н 8");
                            }
                            gridТабель.Columns.RemoveAt(i + 1);
 
                            i++;
                            if (a == 0)
                            {
                                Program.n++;
                            }
                        }
Миниатюры
Как сделать, чтобы ячейки datagridview были combobox?  
0
8927 / 4839 / 1885
Регистрация: 11.02.2013
Сообщений: 10,246
20.11.2016, 22:55 10
Hp, почему ты меняешь одни столбцы на другие, а не сразу создаёшь нужные?
1
Hp
0 / 0 / 1
Регистрация: 24.10.2014
Сообщений: 46
20.11.2016, 23:03  [ТС] 11
ну вот только так заработало. иначе ячейки с combobox добавляются после Этих 30 простых столбцов. И Потому что сразу у меня в зависимости от месяца сначала создается просто таблица определенного размера с обычными ячейками.
0
8927 / 4839 / 1885
Регистрация: 11.02.2013
Сообщений: 10,246
20.11.2016, 23:27 12
Цитата Сообщение от Hp Посмотреть сообщение
зависимости от месяца сначала создается просто таблица определенного размера с обычными ячейками
Так создавай сразу с нужными ячейками!
1
Hp
0 / 0 / 1
Регистрация: 24.10.2014
Сообщений: 46
21.11.2016, 07:32  [ТС] 13
не получается. Не знаю, как сделать. Пэтому сюда написала
0
8927 / 4839 / 1885
Регистрация: 11.02.2013
Сообщений: 10,246
21.11.2016, 07:41 14
Hp, выложи свой проект
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.11.2016, 07:41
Помогаю со студенческими работами здесь

Как правильно считать пустые ячейки DataGridView, чтобы не выбивало исключение?
Парни, а как быть если у меня в таблице присутствуют ячейки со значением null (пустые). Как их...

Дочерние формы, как сделать, чтобы они были разной прозрачности?
как в Paint.net

Как сделать так, чтобы для пользователей были заданы права?
При выборе пользователя и файла нажимаем кнопку открыть и после этого открывается файл с заданными...

Как програмно в dataGridView сделать поле ComboBox?
Как програмно в dataGridView сделать поле Combox? Ниже приведённый код к результату не приводит....


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru