C# MenuStrip控件和 TreeView控件 C# TreeView 菜单栏 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1:根据Menu控件的MenuItem_Click事件获取当前选择项的Text,通过 MenuItem.OwnerItem.Text获取父级item的Text2:根据Text值,设置TabIndex 为1 3:遍历你的TreeNode节点集合,根据父级text展开节点,根据 public void CheckAllChildNodes(TreeNode treeNode, bool nodeChecked) { foreach (TreeNode node in treeNode.Nodes) { node.IsSelected = nodeChecked; if (node.Nodes.Count > 0) { this.CheckAllChildNodes(node, nodeChecked); } } }选中节点。 点到那个菜单你是知道的,然后根据文字或者tag属性保存的唯一值,遍历treeview,其实menuitem的tag值甚至都可以保存对应treenode对象,这样直接取就是了 用TreeView实现导航菜单实例//数据库数据填充到TreeView public void InitTree(TreeNodeCollection Nds, string parentId) { TreeNode NewNode; //data为存储建树数据信息的数据集 //用父节点进行筛选数据集中信息 DataRow[] rows = data.Tables[0].Select("parent_Id='" + parentId + "'"); foreach (DataRow row in rows) { NewNode = new TreeNode(row["title"].ToString(), //设置父节点 row["Files_Id"].ToString(), "images/1.gif", row["NavigateUrl"].ToString(), ""); Nds.Add(NewNode); InitTree(NewNode.ChildNodes, row["Files_Id"].ToString());//添加子节点 } }//用户点击节点实现跳转 protected void TreeView1_SelectedNodeChanged1(object sender, EventArgs e) { int nodeId = Convert.ToInt32(TreeView1.SelectedValue);//获取TreeView控件选择的值 string url = DBClass.GetUrl(nodeId);//获取指定地址 Response.Redirect(url.ToString());//转到指定页 }//CodeGo.net///用存储过程获取TreeView节点相关联地址public static string GetUrl(int filesId) { //获得url地址 SqlConnection myConnection = GetConnection(); SqlCommand myCommand = new SqlCommand("GetUrl", myConnection); myCommand.CommandType = CommandType.StoredProcedure; //添加参数 SqlParameter FilsesId = new SqlParameter("@FilesId", SqlDbType.Int, 4); FilsesId.Value = filesId; myCommand.Parameters.Add(FilsesId); //添加参数 SqlParameter Url = new SqlParameter("@Url", SqlDbType.NVarChar, 100); Url.Direction = ParameterDirection.Output; myCommand.Parameters.Add(Url); //执行存储过程 myConnection.Open(); myCommand.ExecuteNonQuery(); string url = Url.Value.ToString(); myCommand.Dispose(); myConnection.Dispose(); return url; } 两个DataSet之间的操作! WinForm内嵌资源和多语言 如何实现word的粘贴功能? 怎么把一个Bitmap保存到单色bmp文件? 如何给线程函数传参数? 多线程值传递-100分求解 为什么老是执行catch 语句,不管对错 C# DEV GridControl 绑定List, 数据项用接口, 怎么可以绑定子类? 有关Read 方法? 如何统筹安排和管理各个项目并使之成为一个完整系统? C#dataset临近相同数据汇总在显示 怎样在tabcontrol控件上画画
获取父级item的Text
2:根据Text值,设置TabIndex 为1
3:遍历你的TreeNode节点集合,根据父级text展开节点,根据 public void CheckAllChildNodes(TreeNode treeNode, bool nodeChecked)
{
foreach (TreeNode node in treeNode.Nodes)
{
node.IsSelected = nodeChecked;
if (node.Nodes.Count > 0)
{
this.CheckAllChildNodes(node, nodeChecked);
}
}
}选中节点。
//数据库数据填充到TreeView
public void InitTree(TreeNodeCollection Nds, string parentId)
{
TreeNode NewNode;
//data为存储建树数据信息的数据集
//用父节点进行筛选数据集中信息
DataRow[] rows = data.Tables[0].Select("parent_Id='" + parentId + "'");
foreach (DataRow row in rows)
{ NewNode = new
TreeNode(row["title"].ToString(), //设置父节点
row["Files_Id"].ToString(), "images/1.gif", row["NavigateUrl"].ToString(), "");
Nds.Add(NewNode);
InitTree(NewNode.ChildNodes, row["Files_Id"].ToString());//添加子节点
}
}
//用户点击节点实现跳转
protected void TreeView1_SelectedNodeChanged1(object sender, EventArgs e)
{
int nodeId = Convert.ToInt32(TreeView1.SelectedValue);//获取TreeView控件选择的值
string url = DBClass.GetUrl(nodeId);//获取指定地址
Response.Redirect(url.ToString());//转到指定页
}//CodeGo.net/
//用存储过程获取TreeView节点相关联地址public static string GetUrl(int filesId)
{
//获得url地址
SqlConnection myConnection = GetConnection();
SqlCommand myCommand = new SqlCommand("GetUrl", myConnection);
myCommand.CommandType = CommandType.StoredProcedure;
//添加参数
SqlParameter FilsesId = new SqlParameter("@FilesId", SqlDbType.Int, 4);
FilsesId.Value = filesId;
myCommand.Parameters.Add(FilsesId);
//添加参数
SqlParameter Url = new SqlParameter("@Url", SqlDbType.NVarChar, 100);
Url.Direction = ParameterDirection.Output;
myCommand.Parameters.Add(Url);
//执行存储过程
myConnection.Open();
myCommand.ExecuteNonQuery();
string url = Url.Value.ToString();
myCommand.Dispose();
myConnection.Dispose();
return url;
}