求教 给treeview控件添加节点

wszw123wszw 2011-06-16 11:25:11
给studio下的winform窗体添加节点,节点是要从数据库里读取的字段,求教!!!!!!!!!!
...全文
101 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lliai 2011-06-17
  • 打赏
  • 举报
回复
可直接搜TREE控件的用法。
Tragedy 2011-06-17
  • 打赏
  • 举报
回复
给你一个以前回答的地址:http://topic.csdn.net/u/20110521/10/737fa8ff-6d14-4423-bd42-4dae686fb37d.html
Tosp2012 2011-06-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 gxingmin 的回复:]
给一段以前我写的c#代码,将数据库中的信息填充到treeview上

C# code
/// <summary>
/// 将一个表数据填充到指定树上,父节点编号和子节点编号由两个字段表示。
/// </summary>
/// <param name="tree">需要填充的树对象</param>
/// <param ……
[/Quote]
使用遞歸,遍歷節點,添加到TreeView上。
例子參考 “石頭”的代碼。
gxingmin 2011-06-16
  • 打赏
  • 举报
回复
给一段以前我写的c#代码,将数据库中的信息填充到treeview上
/// <summary>
/// 将一个表数据填充到指定树上,父节点编号和子节点编号由两个字段表示。
/// </summary>
/// <param name="tree">需要填充的树对象</param>
/// <param name="dtData">数据所在的表对象</param>
/// <param name="strOIDFieldName">子节点编号字段</param>
/// <param name="strParentFieldName">父节点编号字段</param>
/// <param name="strTextFieldName">节点文本字段</param>
/// <param name="strSortFieldName">排序字段名称</param>
/// <returns>成功返回True,否则返回False</returns>
public static bool FillTree(TreeView tree,DataTable dtData,
string strOIDFieldName,string strParentFieldName,
string strTextFieldName,string strSortFieldName)
{
if(tree==null || dtData==null || dtData.Columns.Count<2)
return false;

if( !dtData.Columns.Contains(strOIDFieldName) ||
!dtData.Columns.Contains(strParentFieldName) ||
!dtData.Columns.Contains(strTextFieldName))
return false;

ImageList imgList=tree.ImageList;
tree.ImageList=null;

tree.Nodes.Clear();

DataRow []drRoot;

if(strSortFieldName!=null && dtData.Columns.Contains(strSortFieldName))
drRoot=dtData.Select(strParentFieldName + " = '' OR " + strParentFieldName + " IS NULL",strSortFieldName);
else
drRoot=dtData.Select(strParentFieldName + " = '' OR " + strParentFieldName + " IS NULL");

if(drRoot==null || drRoot.Length==0)
return true;

foreach(DataRow dr in drRoot)
{
TreeNode nodRoot = tree.Nodes.Add(dr[strTextFieldName].ToString());
nodRoot.ImageIndex=tree.ImageIndex;
nodRoot.SelectedImageIndex=tree.SelectedImageIndex;
nodRoot.Tag=dr[strOIDFieldName].ToString();

FillNode(nodRoot,dtData,strOIDFieldName,strParentFieldName,strTextFieldName,strSortFieldName);
}

tree.ImageList=imgList;
tree.Refresh();

return true;

}
private static void FillNode(TreeNode nodParent,DataTable dtData,string strOIDFieldName,string strParentFieldName,string strTextFieldName,string strSortFieldName)
{
DataRow []drParent;

if(strSortFieldName!=null && dtData.Columns.Contains(strSortFieldName))
drParent=dtData.Select(strParentFieldName + " = '" + nodParent.Tag.ToString() + "'",strSortFieldName);
else
drParent=dtData.Select(strParentFieldName + " = '" + nodParent.Tag.ToString() + "'");

if(drParent==null || drParent.Length==0)
return;

foreach(DataRow dr in drParent)
{
TreeNode node = nodParent.Nodes.Add(dr[strTextFieldName].ToString());
node.ImageIndex=nodParent.ImageIndex;
node.SelectedImageIndex=nodParent.ImageIndex;
node.Tag=dr[strOIDFieldName].ToString();

FillNode(node,dtData,strOIDFieldName,strParentFieldName,strTextFieldName,strSortFieldName);
}

}
xpcxpy 2011-06-16
  • 打赏
  • 举报
回复
code=C#]TreeNode treeNode1= treeView1.Nodes.Add(“第一个根节点”);
TreeNode treeNode2= treeNode1.Nodes.Add("第一个根节点的子节点")[[/code]
porschev 2011-06-16
  • 打赏
  • 举报
回复

添加节点很简单啊



TreeNode tn= new TreeNode(); //创建个节点
tn.Text = "新添加的";

要添加的node.Nodes.Add(tn); //添加到父节点上

16,718

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧