请教一下,我想实现菜单间的关联,选择第一列菜单,第二列只出现与之相关的内容,但实际运行起来,选择第一列菜单后,第二列的内容是空的,请问是什么原因呢,代码和截图如下,请专业人士帮我分析一下,谢谢;
private void ComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
DataGridViewComboBoxEditingControl ComboBox = sender as DataGridViewComboBoxEditingControl;
string selectedprocess;
if (ComboBox.SelectedValue != null)
{
selectedprocess = ComboBox.SelectedValue.ToString(); // 选择对应的下拉值
}
int currentColumnIndex = dataGridView1.CurrentCell.ColumnIndex;
int nextColumnIndex = currentColumnIndex + 1;
// 根据当前列的索引来判断下一列是否存在
if (nextColumnIndex < dataGridView1.Columns.Count)
{
DataGridViewComboBoxColumn nextColumn = dataGridView1.Columns[nextColumnIndex] as DataGridViewComboBoxColumn;
// 根据选中的产品,筛选出对应的规格信息
List<string> filteredprocessList = GetFilteredprocessList(selectedProcess);
nextColumn.DataSource = filteredprocessList;
}
}
private List<string> GetFilteredprocessList(string product)
{
// 根据选中的产品,返回对应的规格列表
// 这里假设你有一个方法可以根据产品获取对应的规格信息
List<string> process = new List<string>();
switch (product)
{
case "制粒":
process = new List<string> { "心可舒" };
break;
case "提取":
process = new List<string> { "脑血舒" };
break;
}
return process;
}
调试下,第一,在选择前面的下拉后,ComboBox_SelectedIndexChanged这个方法执行了没有
第二 nextColumn 有没有值
第三,加上一个
nextColumn.Bind() 或者 DataBind() 之类的(记不得了),刷新下绑定
还不会,可以远程帮你看看
采用递归分治的思想,将一个大问题划分成子问题,
对于本题,根据二叉树先序遍历和中序遍历构建二叉树,思路:
- 我们可以求得根节点左子树的先序和中序序列,以及右子树的先序和中序序列
- 此问题变成了根据左子树的先序和序列构建左子树的二叉树,根据右子树的先序和中序序列构建右子树的二叉树问题得以分解成子问题
令先序序列和中序序列在数组中连续存放。
设先序序列第一个字母的数组中的位置为Xb,最后一个字母的数组中的位置为Xe,中序序列第一个字母的位置为Zb,最后一个字母的位置为Ze
从中序序列中,能找到一个节点将当前二叉树分为左子树与右子树,设此节点位于中序序列的k位置
左子树节点个数num=k-Zb
所以左子树的先序序列区间[Xb+1,Xb+num];中序区间[Zb,k-1]
右子树的先序区间[Xb+num+1,Xe],中序区间[k+1,Ze]