Private Sub Command1_Click() End End Sub Private Sub Form_Load() Dim i As Integer With SftTree1 .Items.Add "Item 0" i = .Items.Add("Item 1") .Item(i).Level = 1 i = .Items.Add("Item 2") .Item(i).Level = 2 i = .Items.Add("Item 3") .Item(i).Level = 1 End With End Sub Private Sub DropTarget_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single) If Data.GetFormat(vbCFText) Then DropTarget.Caption = Data.GetData(vbCFText) End If If Data.GetFormat(vbCFDIB) Then Set DropTargetPic.Picture = Data.GetData(vbCFDIB) End If End Sub Private Sub SftTree1_OLEStartDrag(Data As SftTreeLib70.DataObject, AllowedEffects As Long) Dim curr As Integer curr = SftTree1.Items.Current ' cell text Data.SetData SftTree1.Cell(curr, 0).Text, vbCFText ' item picture If SftTree1.Item(curr).Image.Type = sftTypeIDispatch Then Data.SetData SftTree1.Item(curr).Image.Picture, vbCFDIB Else If SftTree1.Item(curr).Expanded Then Data.SetData SftTree1.Items.ItemImageExpanded.Picture, vbCFDIB ElseIf SftTree1.Item(curr).DependentAllCount > 0 Then Data.SetData SftTree1.Items.ItemImageExpandable.Picture, vbCFDIB Else Data.SetData SftTree1.Items.ItemImageLeaf.Picture, vbCFDIB End If End If End Sub Private Sub SftTree1_OLEDragDrop(Data As SftTreeLib70.DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single) Dim insertAt As Integer Dim str As String Dim lvl As Integer, newItem As Integer Dim horzExtent As Single, col0Width As Single ' get horizontal extent and width of column 0 horzExtent = SftTree1.Items.HorizontalExtent col0Width = SftTree1.Column(0).Width insertAt = SftTree1.Items.DropHighlight If insertAt < 0 Then Exit Sub If Data.GetFormat(vbCFText) Then lvl = SftTree1.Item(insertAt).Level str = Data.GetData(vbCFText) newItem = SftTree1.Items.Insert(insertAt + 1, str) SftTree1.Item(newItem).Level = lvl + 1 ElseIf Data.GetFormat(vbCFDIB) Then Set SftTree1.Cell(insertAt, 0).Image.Picture = Data.GetData(vbCFDIB) SftTree1.Cell(insertAt, 0).ImageHAlign = halignSftTreeRight ElseIf Data.GetFormat(vbCFFiles) Then SftTree1.BulkUpdate = True lvl = SftTree1.Item(insertAt).Level newItem = insertAt + 1 For i = Data.Files.Count To 1 Step -1 newItem = SftTree1.Items.Insert(newItem, Data.Files.Item(i)) SftTree1.Item(newItem).Level = lvl + 1 Next SftTree1.BulkUpdate = False End If ' make horizontal extent and width of column 0 wider than previous ' setting, but never smaller SftTree1.ColumnsObj.MakeOptimal SftTree1.Items.RecalcHorizontalExtent If horzExtent > SftTree1.Items.HorizontalExtent Then SftTree1.Items.HorizontalExtent = horzExtent End If If col0Width > SftTree1.Column(0).Width Then SftTree1.Column(0).Width = col0Width End If End Sub