【问题标题】:Populate combobox inside DataGridView with the values of List使用 List 的值填充 DataGridView 内的组合框
【发布时间】:2018-02-14 14:18:40
【问题描述】:

我正在尝试在 DataGridView 中添加一个 Combobox,如果我刷新另一个以 Windows 形式拥有的组合框,我管理此方法的方法会重复很多次,我会再次运行此方法

this.DataGridView1.ColumnCount = Constants.Vacation_Calendar.Total_Calendar_Days + 2;
this.DataGridView1.Columns[0].Name = "Resource";
this.DataGridView1.Columns[0].Width = 100;
this.DataGridView1.Columns[1].Name = "Month";
this.DataGridView1.Columns[1].Width = 60;



DataGridViewComboBoxColumn cb = new DataGridViewComboBoxColumn();
List<Process> getAllProcesses = this.bl_process.getAll_Process();
List<String> getApplication= new List<string>();


foreach (Process process in getAllProcesses)
{
    getApplication.Add(process.Application);
}



if (!DataGridView1.Columns.Cast<DataGridViewColumn>().Any(x => x.Name == "ProcessColumn"))
{
    cb.HeaderText = "Process";
    cb.Name = "ProcessColumn";
    cb.Width = 100;
    cb.DataSource = getApplication;
    cb.ReadOnly = false;
    DataGridView1.Columns.Insert(2, cb);
}

我不断收到我在设计器中使用以下代码处理的错误:

this.DataGridView1.DataError += new System.Windows.Forms.DataGridViewDataErrorEventHandler(this.DataGridView1_DataError);

在后面的代码中:

private void DataGridView1_DataError(object sender, DataGridViewDataErrorEventArgs e){}

尽管如此,我看不到我的列表填充组合框,这里还缺少什么?

提前谢谢你

PS:我在 Quickwatches 中添加了“getApplication”对象,它从我的列表中接收所有值,所以一切都很好。

【问题讨论】:

  • 你确定if语句中的行被执行了吗?你断点了吗?
  • 在 Watches 输出中我添加了“DataGridView1.Columns[2]”和“cb”我在 if 语句中添加了一个断点,并且我的 cb 对象有一个计数为 3271 的数据源,这很好,问题是当我检查 DataGridView1.Columns[2]" 时,当我到达 if 语句的末尾时,似乎里面什么都没有
  • 你可以试试AddRange而不是DataSource,像这样cb.Items.AddRange(getApplication.ToArray());
  • 没用。一件事我不确定是否是因为如果我删除该方法来处理错误,我会得到错误。如果我删除它,我会收到 System.ArgumentException:DataGridViewComboBoxCell 值无效的错误。要替换此默认对话框,请处理 dataError 事件
  • 我在 DataGridView 中的组合框是 .. 像静态的一样,它通常不会在它为空时扩展,我可以打开它并看到只是白色的,对吗?

标签: c# .net winforms datagridview datagridviewcomboboxcolumn


【解决方案1】:

我不需要类似方法 SelectedIndexChanged 之类的东西吗?看看我在选择什么

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多