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