下面的代码演示将窗体 测试 的视图,在窗体 树结构测试 生产树结构
树结构测试窗体代码:
窗体:测试
树结构测试窗体代码:
public static tvtest tv_fm = null;
public tvtest()
{
InitializeComponent();
tv_fm = this;
}
//更新树
public void re_tv(TreeNode tv0)
{
tv0.Text = "直接成本物料";
tv1.Nodes.Add(tv0);
tv1.ExpandAll();
}
测试窗体代码:
private void bntv_Click(object sender, EventArgs e)
{
if (view1.Rows.Count>0)
{
TreeNode tv0 = new TreeNode();
TreeNode tv1 = new TreeNode();
//TreeNode tv2 = new TreeNode();
//资源组层
foreach (DataGridViewRow r in view1.Rows)
{
if (ck_treexm(r.Cells["Resourceid"].Value.ToString(),tv0))
{
tv0.Nodes.Add(r.Cells["Resourceid"].Value.ToString());
}
}
//物料层
int i = 0;
foreach (DataGridViewRow r in view1.Rows)
{
tv1.Nodes.Add(r.Cells["partnum"].Value.ToString() + " | " + r.Cells["cost"].Value.ToString());
tv1.Nodes[i].Tag = r.Cells["Resourceid"].Value.ToString();
i++;
}
foreach (TreeNode rn0 in tv0.Nodes)
{
foreach (TreeNode rn1 in tv1.Nodes)
{
if (rn1.Tag.ToString()==rn0.Text)
{
rn0.Nodes.Add(rn1);
}
}
}
new tvtest().Show();
tvtest.tv_fm.re_tv(tv0);
}
}
//判断是否是重复树的项目
static bool ck_treexm(string xm,TreeNode tn)
{
foreach (TreeNode t in tn.Nodes)
{
if (xm==t.Text)
{
return false;
}
}
return true;
}