gpt4 book ai didi

c# - 如何用不同的数据填充每个 DataGridViewComboBoxCell?

转载 作者:行者123 更新时间:2023-11-30 15:50:36 25 4
gpt4 key购买 nike

我有两个在运行时添加的 DataGridViewComboBoxColumn 我需要第一个 DataGridViewComboBoxColumn 的项目在 gridview 的所有行中保持相同但我希望第二个 DataGridViewComboBoxColumn 的项目在行与另一行中不同在第一个 DataGridViewComboBoxColumn 的选定项上

如果我们说第一个 DataGridViewComboBoxColumn 代表位置,第二个 DataGridViewComboBoxColumn 代表子位置。所以我希望第二个 DataGridViewComboBoxColumn 项是第一个 DataGridViewComboBoxColumn 中所选位置的子位置

最佳答案

一种选择是在子位置的单元级别更改数据源。

假设网格名为grid,两个网格列分别名为locationsColumnsubLocationsColumn:

private void Form1_Load(object sender, EventArgs e)
{
locationsColumn.DataSource = new string[] { "Location A", "Location B" };
}

然后,在网格的 CellEndEdit 事件上:

private void grid_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
if(locationsColumn.Index == e.ColumnIndex)
{
DataGridViewComboBoxCell subLocationCell =
(DataGridViewComboBoxCell)(grid.Rows[e.RowIndex].Cells["subLocationsColumn"]);

string location = grid[e.ColumnIndex, e.RowIndex].Value as String;

switch (location)
{
case "Location A":
subLocationCell.DataSource = new string[] {
"A sublocation 1",
"A sublocation 2",
"A sublocation 3"
};
break;
case "Location B":
subLocationCell.DataSource = new string[] {
"B sublocation 1",
"B sublocation 2",
"B sublocation 3"
};
break;
default:
subLocationCell.DataSource = null;
return;
}
}
}

当现有行的位置发生变化时,需要进行一些额外的处理,但这是基本思想。

关于c# - 如何用不同的数据填充每个 DataGridViewComboBoxCell?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/446600/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com