永发信息网

C# 用treeview实现树图表示,不会太会用,抛出异常:未将对象引用设置到对象的实例

答案:1  悬赏:50  手机版
解决时间 2021-02-27 04:17
  • 提问者网友:战魂
  • 2021-02-26 21:27
资产类别的树形图, 实现资产类别的增删改。请高手指教一下,不胜感谢~~~
private void FillTreeView()
{
trvFile.Nodes.Clear();
//设置TreeView控件的菜单项
DataSet ds = null;
ds = oper.TreeFill();
TreeNode RootNode = null;
DataTable dt = ds.Tables[0].Copy(); //将资产列表另存一份为dt
DataView dv = new DataView(dt);
dv.RowFilter = "firstID = -1";
//将数据集中的所有记录逐个根据他们之间的关系添加到树形表中去
if (dv.Count > 0)
{
foreach (DataRowView myRow in dv)
{
//设置根节点,然后该函数会递归添加所有子节点。
trvFile.Nodes.Add(RootNode = new TreeNode(myRow["zclb"].ToString()));
childTreeView(myRow["zclb"].ToString(), trvFile.Nodes[0], myRow);
trvFile.SelectedNode = trvFile.Nodes[0]; //选中第一个节点
}
}
trvFile.ExpandAll();
}
private void childTreeView(string childPart, TreeNode childNode, DataRowView childRow)
{
string strdeptName = "";
DataSet ds = null;
ds = oper.TreeFill();
DataTable dt = ds.Tables[0].Copy();
DataView dv = new DataView(dt);
//筛选获得当前传递过来的节点的子项,并将其添加到树形图中
//判断方法是凡parentIndex等于传递过来的节点的absIndex的,就是该节点的子项
dv.RowFilter = "firstID = '" + childRow["secondID"].ToString() + "'";
//递归的添加每一个节点的所有子节点
foreach (DataRowView myRow in dv)
{
strdeptName = myRow["zclb"].ToString();
TreeNode myNode = new TreeNode(strdeptName);
childNode.Nodes.Add(myNode);
//函数递归调用,将所有节点按顺序添加完毕
childTreeView(strdeptName, myNode, myRow);
}
}
private void trvFile_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
try
{
DataSet ds = oper.GetDataSetBaseZclb(e.Node.Text);
zclbID = Convert.ToInt16(ds.Tables[0].Rows[0]["ID"].ToString());
}
catch
{ }
}

private void btnMain_Click(object sender, EventArgs e)
{
DataSet ds = oper.GetDataSetBaseZclb(trvFile.SelectedNode.Text);
if (ds.Tables[0].Rows[0]["firstID"].ToString() != "-1" && ds.Tables[0].Rows[0]["firstID"].ToString() != "0")
{
string firstID = ds.Tables[0].Rows[0]["firstID"].ToString();
int d = oper.insertBaseZclb(firstID, "新建项目", (Convert.ToInt16(firstID) + 1).ToString());
this.trvFile.SelectedNode.Parent.Nodes.Add("新建项目");
}
}
最佳答案
  • 五星知识达人网友:纵马山川剑自提
  • 2021-02-26 22:11
这种错误,只要设置一个断点debug一下,不可能找不到问题所在。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯