SftTree/DLL 7.5 - Tree Control
SftBox/OCX 5.0 - Combo Box Control
SftButton/OCX 3.0 - Button Control
SftMask/OCX 7.0 - Masked Edit Control
SftTabs/OCX 6.5 - Tab Control (VB6 only)
SftTree/OCX 7.5 - Tree Control
SftPrintPreview/DLL 2.0 - Print Preview Control (discontinued)
SftTree/DLL 7.5 - Tree Control
SftBox/OCX 5.0 - Combo Box Control
SftButton/OCX 3.0 - Button Control
SftDirectory 3.5 - File/Folder Control (discontinued)
SftMask/OCX 7.0 - Masked Edit Control
SftOptions 1.0 - Registry/INI Control (discontinued)
SftPrintPreview/OCX 1.0 - Print Preview Control (discontinued)
SftTabs/OCX 6.5 - Tab Control (VB6 only)
SftTree/OCX 7.5 - Tree Control
SftTabs/NET 6.0 - Tab Control (discontinued)
SftTree/NET 2.0 - Tree Control
This sample demonstrates how to add the various parts to cells, like checkboxes, images, progressbars, buttons, dropdown buttons, how to handle events and cell orientation.
Imports System.Reflection
Imports Softelvdm.Controls
Imports Softelvdm.SftTreeNET
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
sftTree1.Initializing = True
sftTree1.Columns.Count = 4
' This sample demonstrates how the various parts of a tree control are used in cells.
' To prepare for this sample, create a new project with a blank form and add
' a SftTree/NET control named SftTree1.
' In addition, adjust the following FromFile method to use a (small) bitmap
' that is located on your system.
Dim img As Image = Bitmap.FromFile("..\\..\\test.gif")
' Add an item
Dim item As ItemClass = sftTree1.ItemCollection.Add()
' Add a text part to the first cell (could use CellBaseClass.Text instead)
Dim cell As CellClass = item.Cells(0)
Dim tp As TextPartClass = New TextPartClass("The first cell", LineStyleEnum.Wordwrap, HAlignmentOptionalEnum.Left, _
VAlignmentOptionalEnum.Top, Color.Blue, Color.Green, Color.Red, Color.Blue, New Font("Arial", 12), StringFormatFlags.LineLimit Or StringFormatFlags.MeasureTrailingSpaces)
cell.Parts.Add(tp)
' Followed by a check box (still in the first cell)
Dim cb As CheckBoxPartClass = New CheckBoxPartClass(CheckBoxStateEnum.Unchecked, HAlignmentOptionalEnum.Left, VAlignmentOptionalEnum.Top, True)
AddHandler cb.Action, AddressOf cb_Action
cell.Parts.Add(cb)
' Followed by an image (still in the first cell)
Dim ip As ImagePartClass = New ImagePartClass(img)
cell.Parts.Add(ip)
' Add contents to the second cell
item.Cells(1).Text = "The" & vbCrLf & "easy" & vbCrLf & "way"
' Add an image to the third cell
cell = item.Cells(2)
cell.Image = img
ip = cell.Parts(0)
AddHandler ip.Action, AddressOf ip_Action
' Add another item
item = sftTree1.ItemCollection.Add()
' Add a progressbar to the first cell
Dim pbp As ProgressBarPartClass = New ProgressBarPartClass(0, 50, 25, 100, 12, GadgetAppearanceEnum.ThemedSystem, _
Color.Red, Color.White, System.Drawing.Drawing2D.LinearGradientMode.Vertical)
pbp.PartAlignment = PartAlignmentEnum.EntireArea
pbp.Appearance = GadgetAppearanceEnum.System
item.Cells(0).Parts.Add(pbp)
' Add a button to the second cell
Dim bp As ButtonPartClass = New ButtonPartClass(False, HAlignmentOptionalEnum.Default, VAlignmentOptionalEnum.Default, _
True, False, GadgetAppearanceEnum.ThemedSystem, Nothing, "Click Me", Nothing, Color.Red)
AddHandler bp.Action, AddressOf bp_Action
item.Cells(1).Parts.Add(bp)
' Add text to the third cell
cell = item.Cells(2)
cell.Text = "Sample Text"
' Add a dropdown button (still in the third cell)
Dim ddp As DropDownButtonPartClass = New DropDownButtonPartClass()
AddHandler ddp.Action, AddressOf ddp_Action
ddp.PartAlignment = PartAlignmentEnum.FlushEnd
cell.Parts.Add(ddp)
' Add another item
item = sftTree1.ItemCollection.Add()
' Add three parts with a vertical orientation to the first cell
cell = item.Cells(0)
cell.Orientation = OrientationOptionalEnum.Vertical
tp = New TextPartClass("First part")
tp.HAlign = HAlignmentOptionalEnum.Left
cell.Parts.Add(tp)
ip = New ImagePartClass(img)
ip.HAlign = HAlignmentOptionalEnum.Center
cell.Parts.Add(ip)
tp = New TextPartClass("Third part")
tp.HAlign = HAlignmentOptionalEnum.Right
cell.Parts.Add(tp)
' Add three parts with a vertical orientation to the second cell
cell = item.Cells(1)
cell.Orientation = OrientationOptionalEnum.Vertical
tp = New TextPartClass("First part")
tp.HAlign = HAlignmentOptionalEnum.Center
cell.Parts.Add(tp)
ip = New ImagePartClass(img)
ip.HAlign = HAlignmentOptionalEnum.Center
cell.Parts.Add(ip)
tp = New TextPartClass("Third part")
tp.HAlign = HAlignmentOptionalEnum.Center
cell.Parts.Add(tp)
' Add three parts with a vertical orientation to the third cell
cell = item.Cells(2)
cell.Orientation = OrientationOptionalEnum.Vertical
tp = New TextPartClass("First part")
tp.HAlign = HAlignmentOptionalEnum.Right
cell.Parts.Add(tp)
ip = New ImagePartClass(img)
ip.HAlign = HAlignmentOptionalEnum.Center
cell.Parts.Add(ip)
tp = New TextPartClass("Third part")
tp.HAlign = HAlignmentOptionalEnum.Left
cell.Parts.Add(tp)
' Set a sorting indicator in the first column header
cell = sftTree1.Headers(0, 0)
cell.SortIndicatorPosition = SortIndicatorPositionEnum.Side
cell.SortStatus = SortStatusEnum.Ascending
sftTree1.Columns.MakeOptimal(0, False)
sftTree1.RecalcHorizontalExtent()
sftTree1.Initializing = False
End Sub
' Dropdown button Action event
Private Sub ddp_Action(ByVal sender As Object, ByVal e As ActionEventArgs)
Dim ddp As DropDownButtonPartClass = e.Part
MessageBox.Show("Dropdown button clicked.")
End Sub
' Button part Action event
Private Sub bp_Action(ByVal sender As Object, ByVal e As ActionEventArgs)
' this is our button that was just clicked
Dim bp As ButtonPartClass = e.Part
' this is the cell containing the button
Dim cell As CellClass = bp.PartOwner
' get the previous cell
cell = cell.Previous
' this cell's first (and only) part is a progressbar (in this example)
Dim pbp As ProgressBarPartClass = cell.Parts(0)
' increment the progressbar's Value property
Dim Val As Integer
If pbp.Value = pbp.Max Then
Val = 0
Else
Val = pbp.Value + 10
End If
Val = Math.Min(Val, pbp.Max)
pbp.Value = Val
End Sub
' Checkbox part Action event
Private Sub cb_Action(ByVal sender As Object, ByVal e As ActionEventArgs)
MessageBox.Show("Clicked the checkbox.")
End Sub
' Image part Action event
Private Sub ip_Action(ByVal sender As Object, ByVal e As ActionEventArgs)
MessageBox.Show("Clicked the image.")
End Sub
' ItemClick event
Private Sub sftTree1_ItemClick(ByVal sender As Object, ByVal e As Softelvdm.SftTreeNET.ItemClickEventArgs) Handles sftTree1.ItemClick
Debug.Write("** ItemClick")
DumpValues(e)
End Sub
' This is a small helper routine to show all properties and fields of an object
Private Sub DumpValues(ByVal o As Object)
Dim api() As PropertyInfo = o.GetType().GetProperties()
For Each pi As PropertyInfo In api
Debug.Write(" " & pi.Name & " " & pi.GetValue(o, New Object() ))
Next
Dim afi() As FieldInfo = o.GetType().GetFields()
For Each fi As FieldInfo In afi
Dim t As Object = fi.GetValue(o)
Dim s As String = "(null)"
If Not t Is Nothing Then s = t.ToString()
Debug.Write(" " & fi.Name & " " & s)
Next
Debug.WriteLine("")
End Sub
End Class