选择treeview节点问题? treeview的labeledit已经设置为true,现在我的问题,当我点击一个节点,该节点被选择,同时的它的text处于可编辑的状态.不知道能不能实现????? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 lz:设置labeledit已经设置为true就行了,只是你点击的时候不能点击太快,否则会当成双击事件处理,不会处于编辑状态,一般需要点击两次左右,中间有一定时间间隔,你试试 sdl2005lyx() ( ) 信誉:100 Blog 我的意思是,不点击两次,比如当前是选中节点状态,我点击另外一个按钮,这个节点的text处于可编辑状态,不知道可以吗?? 这样不可以,道理很简单,对任何控件,包括textbox,(选中的话)第一次都是处于选中状态,需要第二次才处于编辑状态,再说,你多做一次点击,也很正常 啊,用户也自然接受,为什么非要钻技术的牛角尖呢??? 回:sdl2005lyx() ( ) 信誉:100 Blog 我现在就采用你说的方式,但是很容易出问题,多变换几次节点一不小心,text就是可编辑状态,造成节点名字""的情况.我想在想实现,windows那样,右键点击"重命名",这个时候text才可以编辑,更加符合我们在操作windows上的情况 设置labeledit已经设置为true就行了,就像你给你个文件夹改名字一样,两次点击不能太快了,否则就成了双击了。 //Node有BeginEdit可以激活编辑状态//但如果在NodeMouseClick事件里处理会无效//估计是消息没有处理完毕//利用时间器跳出消息处理的堆栈实现private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e){ timer1.Interval = 10; timer1.Enabled = true;}private void timer1_Tick(object sender, EventArgs e){ timer1.Enabled = false; if (treeView1.SelectedNode != null) treeView1.SelectedNode.BeginEdit();} 非常感谢:zswang(伴水清清)(专家门诊清洁工) ( ) lz说得也有道理,我简化一下zswang(伴水清清)(专家门诊清洁工)的代码: private void button1_Click(object sender, EventArgs e) { treeView1.SelectedNode = treeView1.Nodes[2];//这里你自己处理你选择的节点 if (treeView1.SelectedNode != null) treeView1.SelectedNode.BeginEdit(); } 我做个简单的程序。是用CONTEXTMENU菜单来做。private void treeView1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) { System.Drawing.Point p=new Point(e.X,e.Y); TreeNode tr=this.treeView1.GetNodeAt(p); this.treeView1.SelectedNode=tr; } private void menuItem1_Click(object sender, System.EventArgs e) { this.treeView1.LabelEdit=true; if(!this.treeView1.SelectedNode.IsEditing) { this.treeView1.SelectedNode.BeginEdit(); } }这两个方法加入程序中。应该能可以的。试试 日期格式转换问题 怎么给以个固定按钮赋值 请问在.net中如何调用gmail来发送邮件呢? C# 使用Socket.ReceiveFrom时被异常阻塞 C#猜数字 求助 小小疑问,带变量的INSERT语句写法 突然奇想的一个基础问题,求教各位GGJJ 简单数组问题希望高手指点下 谢谢 关于C#做的安装工程 Web窗体的问题,小问题一个 winform 窗口间切换 c# 如何返回调用页面?
我的意思是,不点击两次,比如当前是选中节点状态,我点击另外一个按钮,这个节点的text处于可编辑状态,不知道可以吗??
sdl2005lyx() ( ) 信誉:100 Blog
我现在就采用你说的方式,但是很容易出问题,多变换几次节点一不小心,text就是可编辑状态,
造成节点名字""的情况.我想在想实现,windows那样,右键点击"重命名",这个时候text才可以编辑,更加符合我们在操作windows上的情况
//但如果在NodeMouseClick事件里处理会无效
//估计是消息没有处理完毕
//利用时间器跳出消息处理的堆栈实现private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
timer1.Interval = 10;
timer1.Enabled = true;
}private void timer1_Tick(object sender, EventArgs e)
{
timer1.Enabled = false;
if (treeView1.SelectedNode != null)
treeView1.SelectedNode.BeginEdit();
}
非常感谢:zswang(伴水清清)(专家门诊清洁工) ( )
private void button1_Click(object sender, EventArgs e)
{
treeView1.SelectedNode = treeView1.Nodes[2];//这里你自己处理你选择的节点 if (treeView1.SelectedNode != null)
treeView1.SelectedNode.BeginEdit();
}
private void treeView1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
System.Drawing.Point p=new Point(e.X,e.Y);
TreeNode tr=this.treeView1.GetNodeAt(p);
this.treeView1.SelectedNode=tr; } private void menuItem1_Click(object sender, System.EventArgs e)
{
this.treeView1.LabelEdit=true;
if(!this.treeView1.SelectedNode.IsEditing)
{
this.treeView1.SelectedNode.BeginEdit();
} }
这两个方法加入程序中。应该能可以的。试试