填充DataGridView中的ComboBox

4

我在 Windows 窗体加载时有以下代码:

    private void Panou_Load(object sender, EventArgs e)
    {

        List<string>[] list;

        //list in a array with all elements from a select query
        list = Conexiune.Select();


        dataGridView1.Rows.Clear();

        for (int i = 0; i < list[0].Count; i++)
        {
            int number = dataGridView1.Rows.Add();
            dataGridView1.Rows[number].Cells[0].Value = list[0][i];
            dataGridView1.Rows[number].Cells[1].Value = list[1][i];
            dataGridView1.Rows[number].Cells[2].Value = list[2][i];

            dataGridView1.Rows[number].Cells[4].Value = list[4][i];
            dataGridView1.Rows[number].Cells[5].Value = list[5][i];
            dataGridView1.Rows[number].Cells[6].Value = list[6][i];
        }
    }

在我的datagridview中,第4个单元格是一个下拉框。我该如何使用我的选择(list[3][i])的值填充下拉框? 更新1:
    private void Panou_Load(object sender, EventArgs e)
    {

        List<string>[] list;

        list = Conexiune.Select();
        dataGridView1.Rows.Clear();


        for (int i = 0; i < list[0].Count; i++)
        {
            int number = dataGridView1.Rows.Add();
            dataGridView1.Rows[number].Cells[0].Value = list[0][i];
            dataGridView1.Rows[number].Cells[1].Value = list[1][i];
            dataGridView1.Rows[number].Cells[2].Value = list[2][i];
            (dataGridView1.Columns[3] as DataGridViewComboBoxColumn).DataSource = new List<string> { list[3][i] };
            dataGridView1.Rows[number].Cells[4].Value = list[4][i];
            dataGridView1.Rows[number].Cells[5].Value = list[5][i];
            dataGridView1.Rows[number].Cells[6].Value = list[6][i];
        }
    }

http://i.stack.imgur.com/0WLDr.jpg

UPDATE 2:

    private void Panou_Load(object sender, EventArgs e)
    {

        List<string>[] list;

        list = Conexiune.Select();
        dataGridView1.Rows.Clear();

        (dataGridView1.Columns[3] as DataGridViewComboBoxColumn).DataSource = new List<string> { "", "activ", "inactiv", "neverificat" };

        for (int i = 0; i < list[0].Count; i++)
        {
            int number = dataGridView1.Rows.Add();
            dataGridView1.Rows[number].Cells[0].Value = list[0][i];
            dataGridView1.Rows[number].Cells[1].Value = list[1][i];
            dataGridView1.Rows[number].Cells[2].Value = list[2][i];
            dataGridView1.Rows[number].Cells[3].Value = list[3][i];
            dataGridView1.Rows[number].Cells[4].Value = list[4][i];
            dataGridView1.Rows[number].Cells[5].Value = list[5][i];
            dataGridView1.Rows[number].Cells[6].Value = list[6][i];
        }
    }

http://i.stack.imgur.com/MlnER.jpg

1个回答

5

为comboBox列设置数据源

(dataGridView1.Columns[0] as DataGridViewComboBoxColumn).DataSource 
 = new List<string> { "Apples", "Oranges", "Grapes"};    

     for (int i = 0; i < list[0].Count; i++)
    {
        int number = dataGridView1.Rows.Add();
        dataGridView1.Rows[number].Cells[0].Value = list[3][i]; //list[3][1]=="Apples"
    }
}

(dataGridView1.Columns [3] as DataGridViewComboBoxColumn).DataSource = new List<string> { "项目1", "项目2", "项目3"}; - user2985344
啊,这就是问题所在。用你想要显示在组合框中的实际值替换“Item1”、“Item2”和“Item3”。 - gawicks
list[3][i] - i是for中的变量,不是数字1。这个列表是从数据库中选择出来的,返回了300个值,并且必须有300个组合框。因此我在循环中包含了它。我已经上传了一个截图以更新进展。 - user2985344
状态 Cont 可能的取值是什么? - gawicks
我差不多理解了代码的逻辑: 我已经在组合框中得到了来自数据库的值,就像它们在数据库中一样。 已经快完成了,现在唯一的问题是当我在窗体上按下组合框时,它没有下拉。请参见第二张截图。 - user2985344
显示剩余7条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接