caf20012 Ответов: 1

Множественное значение флажка в datagridview single coloum


Я пытаюсь разрешить определенный флажок, если он установлен, чтобы данные были объединены и вставлены в один столбец datagridview.

Форма добавляет столбец следующим образом;
table.Columns.Add("Drinks", Type.GetType("System.Int32"))

Затем

Флажок 1 = Кока-Кола
Флажок 2 = Пепси Флажок 3 = Фанта

Открытый класс имеет следующий код;

Dim Drinks As String

Каждый из флажков имеет следующие коды вместе с их текстом;

Напитки = " Кока-Кола"
Кнопка для генерации информации выглядит следующим образом;

table.Rows.Add(Drinks.ToString)
   DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
   DataGridView1.RowTemplate.Height = 100
   DataGridView1.AllowUserToAddRows = False
   DataGridView1.DataSource = table


Поэтому, если кто-то выберет "Checkbox1 &Checkbox2", как я могу получить datagridview coloum "Drinks", чтобы показать coke &pepsi?

Что я уже пробовал:

Н/д Я ничего не пробовал, так как не могу найти подобную нить

Kornfeld Eliyahu Peter

Пока это справедливо unclear...It мне кажется, что в любом случае ваш код переопределяет предыдущие значения, когда пользователь устанавливает флажок...
Когда пользователь проверяет коробку на Кока-Колу, напитки будут установлены на "Кока-Колу"; когда пользователь проверяет коробку на Пепси, напитки будут установлены на "Пепси", а "Кока-Кола" исчезнет...
Возможно, также полезно подумать о перечислении для этих флажков (возможно, немного ценное перечисление)...

1 Ответов

Рейтинг:
0

Maciej Los

Обратите внимание, что ваш столбец может принимать только целочисленное значение из-за этой строки:

table.Columns.Add("Drinks", Type.GetType("System.Int32"))

И вы пытаетесь добавить строку (а это неправильно!):
Dim Drinks As String
Drinks = "Coke"
table.Rows.Add(Drinks.ToString) 'Note: ToString() method is redundant


Если вы хотите добавить целочисленное значение, вы должны проверить, установлен ли флажок Проверен[^], а затем добавить строку в datatable.

Предполагая, что каждый напиток имеет свое числовое значение, вы можете использовать что-то вроде этого:
'Coke = 1
If CheckBox1.Checked Then table.Rows.Add(New Object(){1})