怎么样用代码模拟进行TREEVIEW的点选操作?

glgzx 2007-12-03 04:59:04
怎么样用代码模拟进行TREEVIEW的点选操作?
...全文
118 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
glgzx 2007-12-04
  • 打赏
  • 举报
回复
谢谢大家,问题解决!
王集鹄 2007-12-04
  • 打赏
  • 举报
回复
没有理解错的话!
treeView1.SelectedNode = treeView1.Nodes[10];
treeView1.Focus();
glgzx 2007-12-04
  • 打赏
  • 举报
回复
我要的效果是:不直接用鼠标操作TREEVIEW,而是通过代码进行模拟鼠标的单选。
glgzx 2007-12-04
  • 打赏
  • 举报
回复
二楼教训的是。WINFORM程序,当前程序,模拟鼠标单击即可。
shoushii 2007-12-03
  • 打赏
  • 举报
回复
代码很详细,可惜很难读懂
shagoo 2007-12-03
  • 打赏
  • 举报
回复
顶楼上 代码很详细 Mark~
laidon 2007-12-03
  • 打赏
  • 举报
回复
C#中TreeView智能选择节点
//加载数据到treeview
private void LoadfvFunData(Comm.IdTextTreeNode tv,string parent)
{
FunctionDTO[] fdto=wfm.findFunByModle(parent);
if(fdto!=null)
{
foreach(FunctionDTO dto in fdto)
{
Comm.IdTextTreeNode idText=new IdTextTreeNode(dto.funcid,dto.funcname);
if(tv!=null)
{
tv.Nodes.Add(idText);
}
else
{
tvFun.Nodes.Add(idText);
}
LoadfvFunData(idText,dto.funcid);//递归调用填充所有的treenode
}
}
}
//在选中了一个功能之后要进行的操作,如果是子选项,则自动选中其父选项,如果还有子选项,则同时把其子项也选中。
private void tvFun_AfterCheck(object sender, System.Windows.Forms.TreeViewEventArgs e)
{
if(e.Action != TreeViewAction.Unknown)//防止AfterCheck事件被多次引发并可能产生意外行为
{
this.CheckChild((Comm.IdTextTreeNode)e.Node);
this.CheckParent((Comm.IdTextTreeNode)e.Node);
}
}
//把父NODE选中
private void CheckParent(Comm.IdTextTreeNode itt)
{
if(itt.Parent!=null)
{
if(itt.Checked)
{
itt.Parent.Checked=itt.Checked;
CheckParent((Comm.IdTextTreeNode)itt.Parent);
}
else
{
foreach(Comm.IdTextTreeNode tempitt in itt.Parent.Nodes)
{
if(tempitt.Checked)
{
itt.Parent.Checked=true;
return;
}
else
{
itt.Parent.Checked=itt.Checked;
CheckParent((Comm.IdTextTreeNode)itt.Parent);
}
}
}
}
}
//把所有子项也选中
private void CheckChild(Comm.IdTextTreeNode itf)
{
if(itf.Nodes.Count>0)
{
foreach(Comm.IdTextTreeNode idttemp in itf.Nodes)
{
idttemp.Checked=itf.Checked;
CheckChild(idttemp);
}
}
}
//已经有的功能在treeview中显示选中
/// <summary>
/// 确定当前已经有的功能CHECH显示
/// </summary>
private void loadFunData()
{
FunctionDTO[] funCheck=wfm.findFunsByRole(this._dataId);
if(funCheck!=null)
{
for(int i=0;i<funCheck.Length;i++)
{
foreach(Comm.IdTextTreeNode itn in tvFun.Nodes)
{
if(funCheck[i].funcid==itn.ID)
{
itn.Checked=true;
}
checkFun(itn,funCheck[i].funcid);
}
}

}

}
private void checkFun(Comm.IdTextTreeNode itnote,string ComID)
{
if(itnote.Nodes!=null)
{
foreach(Comm.IdTextTreeNode itn in itnote.Nodes)
{
if(ComID==itn.ID)
{
itn.Checked=true;
}
checkFun(itn,ComID);
}
}
}
王集鹄 2007-12-03
  • 打赏
  • 举报
回复
WinForm?WebForm?当前程序?其他程序?怎么点?怎么选?

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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