关于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;//运行到这里出现异常
........

}
}