DataGridViewComboboxCell отобразить список [закрыт]

170
06 марта 2021, 13:40
Закрыт. Этот вопрос не по теме. Ответы на него в данный момент не принимаются.

Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском.

Закрыт 1 год назад.

Улучшить вопрос

Делал всё по инструкции. В Combobox ячейках пусто и ничего не выпадает. Чего мне не хватает?

private DataGridViewComboBoxColumn CreateComboBoxColumn()
{
        DataGridViewComboBoxColumn column =
            new DataGridViewComboBoxColumn();
        {
            column.HeaderText = "Products";
            column.DropDownWidth = 90;
            column.Width = 90;
        }
        return column;
}
private void Form1_Load(object sender, EventArgs e)
{
    DataGridViewComboBoxColumn comboboxColumn = CreateComboBoxColumn();
    dataGridView3.Columns.Add(comboboxColumn);
    dataGridView3.Rows.Add(3);
    for (int i = 0; i < 3; i++)
    {      
                List<string> ordrerProducts = new List<string>();
                ordrerProducts.Add("A"+i);
                ordrerProducts.Add("B"+i);
                ordrerProducts.Add("C"+i);
                var cell = new DataGridViewComboBoxCell();
                cell.Items.AddRange(ordrerProducts);
                //второй вариант (тоже не работает)
                //cell.DataSource = ordrerProducts;
                dataGridView3[0, i] = cell;
     }
}

Answer 1

Преобразуйте список в массив:

cell.Items.AddRange(ordrerProducts.ToArray());

У DataGridViewComboBoxCell.ObjectCollection.AddRange есть две перегрузки, но ни одна из них не принимает ни List ни IEnumerable. В результате если передать список, то он будет воспринят как одно значение.

Исполняемый пример:

using System;
using System.Collections.Generic;
using System.Windows.Forms;
class Program
{
    [STAThread]
    static void Main()
    {
        var grid = new DataGridView {Dock = DockStyle.Fill};
        grid.Columns.Add("Column", "Column");
        grid.Rows.Add(3);
        for (int i = 0; i < 3; i++)
        {
            var products = new List<object> { "A" + i, "B" + i, "C" + i };
            var cell = new DataGridViewComboBoxCell();
            cell.Items.AddRange(products.ToArray());
            grid[0,i] = cell;
        }
        var form = new Form();
        form.Controls.Add(grid);
        Application.Run(form);
    }
}

Результат:

READ ALSO
SQL фильтрация дубликатов

SQL фильтрация дубликатов

Вопрос заключается в следующем : Есть база данных postgre, в ней есть таблица вот такого вида Из за сбоя в службе которая собирает статистику...

88
Есть ли альтернатива питоновского типа enumerate в php?

Есть ли альтернатива питоновского типа enumerate в php?

В PHP новичок от слова совсем, появилась задача написать генератор случайных чисел с идентификаторами, в питоне например про такой тип, как...

103
PHP universal delete file

PHP universal delete file

Какие могут быть недостатки у кода ниже ?

70