在datagridview中更改为comboBox在运行时

时间:2015-07-22 00:49:22

标签: c# winforms datagridview combobox windows-forms-designer

我使用默认的datagridview在我的Windows窗体应用程序中显示数据。

如果有人点击某个特定列,我想显示该单元格的组合框。因此,在运行时,用户只能为该列单元格选择固定值。

我想在点击活动中这样做。

我正在以编程方式向dataridview添加列和行。

当我向datagridView添加数据时,我无法将DataGridViewComboBoxColumn添加到datable。

以下是代码。

           using (StringReader reader = new StringReader(new  StreamReader(fileStream, Encoding.Default).ReadToEnd()))
            {
                while (reader.Peek() != -1)
                {
                    string line = reader.ReadLine();

                    if (line == null || line.Length == 0)
                        continue;

                    string[] values = line.Split(',');

                    output.Add(values);
                    if (!isColumnCreated)
                    {

                        for (int i = 0; i < values.Count() - 1; i++)
                        {

                          table.Columns.Add(values[i]);

                        }
                        isColumnCreated = true;
                        continue;
                    }

                    DataRow row = table.NewRow();
                      for (int i= 0; i < values.Count() - 1; i++)
                    {



                        row[i] = values[i];


                    }

                   table.Rows.Add(row);

                }
            }

            dataGridView1.DataSource = table;

1 个答案:

答案 0 :(得分:2)

我建议不要在点击时更改DataGridView单元格的类型。只需使用particular column作为DataGridViewComboBoxColumn正常填充DataGridView,然后尝试:

(your particular column).DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing;

当它不处于编辑模式时,将显示DataGridViewComboBoxCell而不显示下拉按钮。 Readmore here