高难度问题: 怎样禁止双击treeview节点时自动展开或者折叠的行为

csharpstudy 2007-07-10 10:38:11
双击treeview节点时,
禁止自动展开或者折叠

那个beforexpand或者beforecollapse事件根本没有catch到..
...全文
987 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
csharpstudy 2007-07-18
  • 打赏
  • 举报
回复
重写WndProc ( ref System.Windows.Forms.Message m )

拦截treeView1双击消息即可

///////
这个咋写...呵呵
csharpstudy 2007-07-18
  • 打赏
  • 举报
回复
嗯 是屏蔽双击
xlfancy 2007-07-13
  • 打赏
  • 举报
回复
重写WndProc ( ref System.Windows.Forms.Message m )

拦截treeView1双击消息即可
shanminmin 2007-07-13
  • 打赏
  • 举报
回复
如果仅仅是不让展开好办:

private void treeView1_BeforeExpand(object sender, TreeViewCancelEventArgs e)
{
e.Cancel = true;
}

就可以了,但是我觉得楼主应该是还想让点+时能点开,只是屏蔽双击吧?
csharpstudy 2007-07-11
  • 打赏
  • 举报
回复
brucenan999(布鲁斯南) ( ) 信誉:99 Blog 加为好友 2007-7-10 14:16:12 得分: 0



在WndProc函数里把WM_NOTIFY中的TVN_ITEMEXPANDING,TVN_ITEMEXPANDED 试试.





///////////////////////////////////////////////////

这样不会把正常点击节点展开..折叠也屏蔽吧?
brucenan999 2007-07-11
  • 打赏
  • 举报
回复
这个不太清楚,我在C#里没有搞到具体的值,试不出来.

应该可以区分开吧,TREEVIEW展开结点一种是双击结点,还有是点击前面的小加号.
窃以为:)

不过你不就是不想让它展开吗?

csharpstudy 2007-07-10
  • 打赏
  • 举报
回复
songhtao(三十年孤独)

////
也跑来C#区了呀...
csharpstudy 2007-07-10
  • 打赏
  • 举报
回复
看来是有难度的....

重写可能解决问题..... 微软咋没想这点了..

干嘛自动展开折叠...弄个属性多好.
sunkangta 2007-07-10
  • 打赏
  • 举报
回复
有难度...

楼上说的逆向操作,估计不是楼主想要的
Coaido 2007-07-10
  • 打赏
  • 举报
回复
把以前的思维反过来就ok吧?

void Data_Bound(Object sender, TreeNodeEventArgs e)
{



if(e.Node.Depth == 1)
{

// Expand the node using the Expand method.
e.Node.Collapse();

}
else
{


e.Node.Expand();

}

}

我不懂电脑 2007-07-10
  • 打赏
  • 举报
回复
不如干脆不用TreeView
zpingy 2007-07-10
  • 打赏
  • 举报
回复
采用TreeView的Double_Click事件来处理,也可以用beforexpand事件,不过要判断当前鼠标的状态,有点困难
csShooter 2007-07-10
  • 打赏
  • 举报
回复
只是有点闪。
根据实际功能,更换为其它控件!..
owennol 2007-07-10
  • 打赏
  • 举报
回复
在TreeView的Double_Click事件中
判断节点的状态:如展开,则折叠;如折叠,则展开。(反正就是再执行一次相反的操作)
huo789 2007-07-10
  • 打赏
  • 举报
回复
UP~
csShooter 2007-07-10
  • 打赏
  • 举报
回复
private void treeView1_AfterExpand(object sender, TreeViewEventArgs e)
{
this.treeView1.Nodes[0].Collapse();
}
sqllong 2007-07-10
  • 打赏
  • 举报
回复
UP
glacier111 2007-07-10
  • 打赏
  • 举报
回复
有难度,帮顶
brucenan999 2007-07-10
  • 打赏
  • 举报
回复
在WndProc函数里把WM_NOTIFY中的TVN_ITEMEXPANDING,TVN_ITEMEXPANDED 试试.

110,536

社区成员

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

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

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