如何重命名treeView控件的节点
是不是一定要先放一个Textbox控件,把该控件移动到要重命名的结点上,在Textbox上改名,然后Treeview.selectitem.text=text1.text呢 问题点数:50、回复次数:3Top
1 楼jinesc(我不喜欢问为什么!!!!!)回复于 2004-05-01 19:42:19 得分 0
treeview1.LabelEdit =tvwAutomaticTop
2 楼kmzs(.:RNPA:.山水岿濛)回复于 2004-05-01 19:50:47 得分 0
就是这样Top
3 楼online(龙卷风V4.0--决战江湖(MS MVP-VB))回复于 2004-05-01 20:25:29 得分 50
写了一段
Option Explicit
Private Declare Function SendMessageLong Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Const EM_LIMITTEXT = &HC5
Const TV_FIRST As Long = &H1100
Const TVM_GETNEXTITEM As Long = (TV_FIRST + 10)
Const TVM_GETEDITCONTROL As Long = (TV_FIRST + 15)
Private Sub Command1_Click()
MsgBox TreeView1.SelectedItem.Text
End Sub
Private Sub Command2_Click()
'重命名按钮
TreeView1.StartLabelEdit '自动处于编辑状态
End Sub
Private Sub Form_Load()
TreeView1.Nodes.Add , , "root", "root"
TreeView1.Nodes.Add "root", tvwChild, , "child1"
TreeView1.Nodes.Add "root", tvwChild, , "child2"
TreeView1.Nodes.Add "root", tvwChild, , "child3"
TreeView1.Nodes.Add "root", tvwChild, , "child4"
TreeView1.Nodes.Add "root", tvwChild, , "child5"
TreeView1.Nodes("root").Expanded = True
End Sub
'treeview1.LabelEdit =tvwAutomatic
'主要对treeview的BeforeLabelEdit,AfterLabelEdit事编程
Private Sub TreeView1_AfterLabelEdit(Cancel As Integer, NewString As String)
On Error GoTo vbErrorHandler
If Len(NewString) = 0 Then
MsgBox "你必须输入一个名称"
Cancel = True
Exit Sub
End If
Exit Sub
vbErrorHandler:
MsgBox Err.Number & " " & Err.Description
End Sub
Private Sub TreeView1_BeforeLabelEdit(Cancel As Integer)
Dim lEditHWND As Long
'得到treeview上编辑框的句柄
lEditHWND = SendMessageLong(TreeView1.hwnd, TVM_GETEDITCONTROL, 0, 0)
' 限制到20个字符
If lEditHWND > 0 Then
SendMessageLong lEditHWND, EM_LIMITTEXT, 20, 0
End If
End Sub
Top




