请教在treeview的AfterLabelEdit事件,为何会触发多次 本帖最后由 shark_lau 于 2014-10-09 15:06:30 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 试过了,貌似与那个cancelEdit无关,是鼠标点击treeview就会触发2次AfterLabelEdit。您能解释具体做法吗? e.Node.BeginEdit();每次都会导致开始编辑,当离开时又会循环触发这个事件 if (e.Button == MouseButtons.Left) return;这是闹哪样,注册了事件,里面什么代码都不写,直接return了 可是新建node,开始编辑node的文本,之后用键盘回车,就会提示一次,按确定后,node的文本依然可以编辑。就是鼠标会有问题 如果你在MouseDown事件里没有再去操作treeview的话,确实是没有任何影响事件响应了就响应了呗,你不是因为希望它响应才注册的这个事件吗MouseDown事件响应,跟AfterLabelEdit有什么关系 当改变窗口大小时,AfterLabelEdit事件会触发3次你是如何改变窗口大小的?用鼠标拽,必然点击鼠标的时候会使treeview失去焦点,那么当然会触发AfterLabelEdit 如果正在编辑node文本,点击treeview,看调用顺序是:先触发AfterLabelEdit事件,再触发MouseDown事件,然后再触发一次AfterLabelEdit事件。用键盘回车就不会触发第二次的AfterLabelEdit事件。 如果正在编辑node文本,点击treeview,看调用顺序是:先触发AfterLabelEdit事件,再触发MouseDown事件,然后再触发一次AfterLabelEdit事件。用键盘回车就不会触发第二次的AfterLabelEdit事件。你把MouseDown里的代码都去掉,也这样吗? 如果正在编辑node文本,点击treeview,看调用顺序是:先触发AfterLabelEdit事件,再触发MouseDown事件,然后再触发一次AfterLabelEdit事件。用键盘回车就不会触发第二次的AfterLabelEdit事件。你把MouseDown里的代码都去掉,也这样吗?是,MouseDown事件开头的return就是相当于注释掉后续代码。我又多次试验,是AfterLabelEdit事件里的e.Node.BeginEdit()引发的第二次AfterLabelEdit事件。可是没有这句,又没办法让node文本保持编辑状态。 你试过去掉MessageBox.Show这个东东吗有它在,很多时候会出现问题的因为它会使窗体失去焦点 试过了,与messagebox无关,是是AfterLabelEdit事件里的e.Node.BeginEdit()引发的第二次AfterLabelEdit事件,可是不能去掉这句,因为需要保持node文本的编辑状态 如何获取一个类的所有属性及值? AxSHDocVw.axWerbbrowser登录https网站不成功 C#如何使控件不受xp系统影响 xml操作的两个小问题 控件调用的问题,很简单。。。 一个很简单的问题.有了结果马上结贴 求高手帮帮我 @@@@!!!1c#初学者 急待解决的问题 !跪求各位高手指点啊! 在线等 !!! C# winform下combox怎么显示XML文档的节点? 愿意C#共同学习,再开发一个软件吗? C#如何实现WinForm程序开机自启动并且不能退出 c#怎么监听程序窗体外的鼠标点击事件啊?
试过了,貌似与那个cancelEdit无关,是鼠标点击treeview就会触发2次AfterLabelEdit。您能解释具体做法吗?
这是闹哪样,注册了事件,里面什么代码都不写,直接return了
可是新建node,开始编辑node的文本,之后用键盘回车,就会提示一次,按确定后,node的文本依然可以编辑。就是鼠标会有问题
事件响应了就响应了呗,你不是因为希望它响应才注册的这个事件吗
MouseDown事件响应,跟AfterLabelEdit有什么关系
你是如何改变窗口大小的?
用鼠标拽,必然点击鼠标的时候会使treeview失去焦点,那么当然会触发AfterLabelEdit
如果正在编辑node文本,点击treeview,看调用顺序是:先触发AfterLabelEdit事件,再触发MouseDown事件,然后再触发一次AfterLabelEdit事件。用键盘回车就不会触发第二次的AfterLabelEdit事件。
如果正在编辑node文本,点击treeview,看调用顺序是:先触发AfterLabelEdit事件,再触发MouseDown事件,然后再触发一次AfterLabelEdit事件。用键盘回车就不会触发第二次的AfterLabelEdit事件。
你把MouseDown里的代码都去掉,也这样吗?
如果正在编辑node文本,点击treeview,看调用顺序是:先触发AfterLabelEdit事件,再触发MouseDown事件,然后再触发一次AfterLabelEdit事件。用键盘回车就不会触发第二次的AfterLabelEdit事件。
你把MouseDown里的代码都去掉,也这样吗?是,MouseDown事件开头的return就是相当于注释掉后续代码。我又多次试验,是AfterLabelEdit事件里的e.Node.BeginEdit()引发的第二次AfterLabelEdit事件。可是没有这句,又没办法让node文本保持编辑状态。
有它在,很多时候会出现问题的
因为它会使窗体失去焦点
试过了,与messagebox无关,是是AfterLabelEdit事件里的e.Node.BeginEdit()引发的第二次AfterLabelEdit事件,可是不能去掉这句,因为需要保持node文本的编辑状态