*请问怎样用TreeView控件可以像Foxmail一样给节点更名?

sundna 2001-08-31 10:16:58

更名或新增加一个节点时那个TEXT输入框是怎样搞出来的?
...全文
175 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
dzbswl 2001-08-31
  • 打赏
  • 举报
回复
学习学习,收藏起来
一川烟草123 2001-08-31
  • 打赏
  • 举报
回复
tv.Nodes.Add strkey, tvwChild, pdno, "New Group"
tv.Nodes(pdno).Selected = True
tv.StartLabelEdit
playyuer 2001-08-31
  • 打赏
  • 举报
回复
'实现
'1.从 Listview 拖拽 Item 加到 Treeview 的 Node
'2.添加 Treeview 节点时,可自动滚动
'3.编辑节点的 Text
'Objects:
'Form1、Treeview1、Listview1、Timer1、Command1
Option Explicit
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const WM_VSCROLL = &H115
Private Const WM_HSCROLL = &H114
Dim bIsLvwItemDblClick As Boolean
Dim bIsTvwNodeDblClick As Boolean
Dim mfX As Single
Dim mfY As Single
Private Enum ScrollDirection
VScrollBarUp = 0
HScrollBarRight = 1
VScrollBarDown = 2
HScrollBarLeft = 3
End Enum
Dim sdX As ScrollDirection
Private Sub Command1_Click()
Dim Nodex As MSComctlLib.Node
If TreeView1.SelectedItem Is Nothing Then
Set Nodex = TreeView1.Nodes.Add(, , GetNextKey(), "")
Else
Set Nodex = TreeView1.Nodes.Add(TreeView1.SelectedItem, tvwChild, GetNextKey() & ListView1.SelectedItem.Text, ListView1.SelectedItem.Text)

End If
Nodex.Selected = True
'TreeView1.SelectedItem.Expanded = True

TreeView1.StartLabelEdit


End Sub

Private Sub Form_DragOver(Source As Control, x As Single, y As Single, State As Integer)
If Source Is TreeView1 Then
Timer1.Enabled = False
End If
End Sub
Private Sub Form_Load()
Dim i As Integer
Timer1.Enabled = False
Timer1.Interval = 200
TreeView1.Style = tvwTreelinesPlusMinusPictureText
For i = 1 To 50
TreeView1.Nodes.Add , , GetNextKey, "Node " & i
Next i
TreeView1.HideSelection = False

TreeView1.LabelEdit = tvwManual

ListView1.ListItems.Add , , "cc"
ListView1.ListItems.Add , , "dd"

ListView1.OLEDragMode = ccOLEDragAutomatic
ListView1.LabelEdit = lvwManual
ListView1.HideSelection = False
End Sub
Private Sub ListView1_DblClick()
If bIsLvwItemDblClick Then
MsgBox ListView1.SelectedItem.Text
End If
End Sub
Private Sub ListView1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
If Button = vbLeftButton Then
ListView1.DragIcon = ListView1.SelectedItem.CreateDragImage
ListView1.Drag vbBeginDrag
Else
If ListView1.HitTest(x, y) Is ListView1.SelectedItem Then
bIsLvwItemDblClick = True
Else
bIsLvwItemDblClick = False
End If
End If
End Sub

Private Sub TreeView1_AfterLabelEdit(Cancel As Integer, NewString As String)
If VBA.Len(NewString) <= 0 Then
MsgBox "error"
TreeView1.StartLabelEdit
Cancel = 1

End If
End Sub

Private Sub TreeView1_DblClick()
If bIsTvwNodeDblClick Then
MsgBox TreeView1.SelectedItem.Text
End If
End Sub
Private Sub TreeView1_DragDrop(Source As Control, x As Single, y As Single)
If Not TreeView1.DropHighlight Is Nothing Then
Dim Nodex As MSComctlLib.Node
Set Nodex = TreeView1.Nodes.Add(TreeView1.DropHighlight.Key, tvwChild, GetNextKey() & ListView1.SelectedItem.Text, ListView1.SelectedItem.Text)
TreeView1.DropHighlight.Expanded = True
Nodex.Selected = True
TreeView1.StartLabelEdit
End If
Timer1.Enabled = False
End Sub
Private Sub TreeView1_DragOver(Source As Control, x As Single, y As Single, State As Integer)
Set TreeView1.DropHighlight = TreeView1.HitTest(x, y)
mfX = x
mfY = y
If y > 0 And y < 100 Then
sdX = VScrollBarUp
Timer1.Enabled = True
ElseIf y > (TreeView1.Height - 400) And y < TreeView1.Height Then
sdX = VScrollBarDown
Timer1.Enabled = True
ElseIf x > 0 And x < 100 Then
sdX = HScrollBarLeft
Timer1.Enabled = True
ElseIf x > (TreeView1.Width - 400) And x < TreeView1.Width Then
sdX = HScrollBarRight
Timer1.Enabled = True
Else
Timer1.Enabled = False
End If
End Sub
Private Sub TreeView1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
If TreeView1.HitTest(x, y) Is TreeView1.SelectedItem Then
bIsTvwNodeDblClick = True
Else
bIsTvwNodeDblClick = False
End If
End Sub
Private Sub Timer1_Timer()
Set TreeView1.DropHighlight = TreeView1.HitTest(mfX, mfY)
Select Case sdX
Case VScrollBarUp
SendMessage TreeView1.hwnd, WM_VSCROLL, 0, vbNull
Case VScrollBarDown
SendMessage TreeView1.hwnd, WM_VSCROLL, 1, vbNull
Case HScrollBarLeft
SendMessage TreeView1.hwnd, WM_HSCROLL, 0, vbNull
Case HScrollBarRight
SendMessage TreeView1.hwnd, WM_HSCROLL, 1, vbNull
End Select
End Sub
Private Sub TreeView1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
Timer1.Enabled = False
End Sub
Private Sub TreeView1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
TreeView1.DropHighlight = TreeView1.HitTest(x, y)
If Not TreeView1.DropHighlight Is Nothing Then
TreeView1.SelectedItem = TreeView1.HitTest(x, y)
End If
Set TreeView1.DropHighlight = Nothing
End Sub
Private Function GetNextKey() As String
Dim sNewKey As String
Dim iHold As Integer
Dim i As Integer
On Error GoTo myerr
iHold = Val(TreeView1.Nodes(1).Key)
For i = 1 To TreeView1.Nodes.Count
If Val(TreeView1.Nodes(i).Key) > iHold Then
iHold = Val(TreeView1.Nodes(i).Key)
End If
Next
iHold = iHold + 1
sNewKey = CStr(iHold) & "_"
GetNextKey = sNewKey
Exit Function
myerr:
GetNextKey = "1_"
End Function
sundna 2001-08-31
  • 打赏
  • 举报
回复
这60分我可是很想给出去呀!
sundna 2001-08-31
  • 打赏
  • 举报
回复

没人会吗?哎~~~~
dzbswl 2001-08-31
  • 打赏
  • 举报
回复
gz
sundna 2001-08-31
  • 打赏
  • 举报
回复
谢谢各位, 我先去研究一下,等搞定了就给大家加分!呵呵~~~
【重要提示】本资源设置为0积分下载,若非0积分请勿轻易下载 亲爱的CSDN用户: 首先感谢你点进这个资源页面。我需要提前说明一个重要情况: 本资源原本已设置为“0积分下载”,即作者希望完全免费共享。但CSDN平台有时会根据文件的下载热度、文件大小、用户权限等因素,自动将部分资源的积分调整为非0数值(如1积分、2积分、5积分等)。这是平台系统的自动行为,而非作者本人的设定。 因此,如果你当前看到该资源的下载所需积分不是0(例如显示为1、2、3……),请谨慎决定是否下载。 如果你按照非0积分支付并下载后发现资源内容不符合预期、链接失效,或者实际上该资源本应是免费的,作者无法为此承担积分损失或退还操作。强烈建议:仅在页面显示为0积分时进行下载。 另外,本资源描述中并未直接提供具体的下载地址或外部链接,因为它本身是一个通过CSDN官方上传通道提交的文件/内容包。如果你看到描述中没有外部网盘地址,这是正常的——资源文件应通过CSDN内置的“下载”按钮获取。若因平台积分显示异常导致你支付了积分,请优先联系CSDN客服咨询积分退还政策,作者没有权限修改平台自动设定的积分值。 感谢你的理解与支持。技术分享本应开放,但受限于平台规则,特此提醒如上。祝学习进步!
内容概要:本文围绕“计及风电不确定性的电力系统黑启动与负荷恢复协同优化”开展研究,提出了一种融合风电出力随机性与波动性的黑启动及负荷恢复协同优化模型,并基于Matlab平台实现了完整的代码仿真与算例验证。研究构建了考虑不确定性因素的优化框架,通过场景生成与削减技术处理风电出力的随机特征,建立了兼顾系统安全性、恢复效率与供电可靠性的多目标优化模型。文中详细阐述了模型的数学建模过程、关键约束条件(如功率平衡、设备启停顺序、网络拓扑约束等)、求解算法设计及黑启动电源优选策略,并通过标准测试系统验证了所提方法在提升灾后恢复能力方面的有效性与优越性。; 适合人群:具备电力系统分析、优化理论及可再生能源并网基础知识,从事电力系统恢复控制、新型电力系统韧性提升、新能源集成等方向研究的研究生、科研人员及电力行业工程技术人才。; 使用场景及目标:①用于电力系统大面积停电后的黑启动方案制定,优化启动电源选择与负荷恢复时序;②为高比例风电接入背景下电力系统的安全稳定与弹性恢复提供决策支持;③作为Matlab仿真教学资源,辅助理解不确定性建模、随机/分布鲁棒优化及电力系统动态恢复过程。; 阅读建议:建议结合提供的Matlab代码进行同步研读,重点掌握风电不确定性建模方法(如场景法)、优化模型构建逻辑与求解流程(如使用YALMIP调用求解器),宜在熟悉基本电力系统运行与优化算法的基础上进行复现与拓展研究。

1,453

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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