关于treeview的node的tag赋值的问题,以下的程序哪里错了?应怎么改
public class FormMain : System.Windows.Forms.UserControl
{
public class clNodeTag
{
public int i_TagId;
public byte i_Status;
public byte i_Level;
public string strTitle;
}
public clNodeTag m_cNodeTag;//节点的tag属性
.......
.......
//初始化树节点
private bool InitTreeInfo()
{
TreeNode tempNode;
try
{
m_TreeView.BeginUpdate();
m_TreeView.Nodes.Clear();
tempNode=m_TreeView.Nodes.Add("abc");
m_cNodeTag=new clNodeTag();
m_cNodeTag.i_TagId=0;
m_cNodeTag.i_Status=0;
m_cNodeTag.i_Level=1;
m_cNodeTag.strTitle="abc";
tempNode.Tag=m_cNodeTag; tempNode=m_TreeView.Nodes.Add("def");
m_cNodeTag=new clNodeTag();
m_cNodeTag.i_TagId=1;
m_cNodeTag.i_Status=0;
m_cNodeTag.i_Level=1;
m_cNodeTag.strTitle="def";
tempNode.Tag=m_cNodeTag; for(int i=0;i<10;i++)
{
tempNode=m_TreeView.Nodes[1].Nodes.Add"111");
m_cNodeTag=new clNodeTag();
m_cNodeTag.i_TagId=100+i;
m_cNodeTag.i_Status=0;
m_cNodeTag.i_Level=2;
m_cNodeTag.strTitle="111";
tempNode.Tag=m_cNodeTag;
}
m_TreeView.EndUpdate();
m_TreeView.ExpandAll();
}
catch
{
return false;
}
return true;
} private void TreeView1_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
{
clNodeTag tempNodeTag=(clNodeTag)(TreeView.SelectedNode.Tag);
//上面这句执行后tempNodeTag仍然为null int i_TagNum=tempNodeTag.i_TagId;//运行到这里出现异常
........
}
}
public class FormMain : System.Windows.Forms.UserControl
{
public class clNodeTag
{
public int i_TagId;
public byte i_Status;
public byte i_Level;
public string strTitle;
}
public clNodeTag m_cNodeTag;//节点的tag属性
.......
.......
//初始化树节点
private bool InitTreeInfo()
{
TreeNode tempNode;
try
{
m_TreeView.BeginUpdate();
m_TreeView.Nodes.Clear();
tempNode=m_TreeView.Nodes.Add("abc");
m_cNodeTag=new clNodeTag();
m_cNodeTag.i_TagId=0;
m_cNodeTag.i_Status=0;
m_cNodeTag.i_Level=1;
m_cNodeTag.strTitle="abc";
tempNode.Tag=m_cNodeTag; tempNode=m_TreeView.Nodes.Add("def");
m_cNodeTag=new clNodeTag();
m_cNodeTag.i_TagId=1;
m_cNodeTag.i_Status=0;
m_cNodeTag.i_Level=1;
m_cNodeTag.strTitle="def";
tempNode.Tag=m_cNodeTag; for(int i=0;i<10;i++)
{
tempNode=m_TreeView.Nodes[1].Nodes.Add"111");
m_cNodeTag=new clNodeTag();
m_cNodeTag.i_TagId=100+i;
m_cNodeTag.i_Status=0;
m_cNodeTag.i_Level=2;
m_cNodeTag.strTitle="111";
tempNode.Tag=m_cNodeTag;
}
m_TreeView.EndUpdate();
m_TreeView.ExpandAll();
}
catch
{
return false;
}
return true;
} private void TreeView1_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
{
clNodeTag tempNodeTag=(clNodeTag)(TreeView.SelectedNode.Tag);
//上面这句执行后tempNodeTag仍然为null int i_TagNum=tempNodeTag.i_TagId;//运行到这里出现异常
........
}
}
解决方案 »
- [开源分享]推荐一款界面超酷的Pocket PC 掌上电脑[源码下载]
- textbox绑定dataset,如何自动更新数据库?
- c#矩形优化排样
- C# dataTable 数据筛选问题,请教!!!
- 控件改用问题
- 怎么读写ini文件?
- C#中 listBox控件 选定listbox中的某一项后,就将该选定的项改变颜色,而且该项不可在选取,该如何实现啊?
- 有偿求助:帮忙开发简单的桌面软件(500元酬劳)
- C# 根据 一个画面的exe 解析出 里面所有的控件
- 水晶报表无法使用.求救.
- Threading.Timer在Windows服务中工作不正常的问题(VB.Net无人能解)!
- c#中如何访问调用C++写的DLL,有库文件.
难道不是吗?
是不是 m_cNodeTag=new clNodeTag() 之后,又自动将这块内存释放了?