using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Diagnostics; using System.Reflection; using Softelvdm.SftTreeNET; using Softelvdm.Controls; namespace WindowsApplication1 { public partial class PartsSample2 : Form { public PartsSample2() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { sftTree1.Initializing = true; sftTree1.Columns.Count = 1; // This sample demonstrates how radiobuttons 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. Image img = Bitmap.FromFile("..\\..\\test.bmp"); // Add an item ItemClass item = sftTree1.ItemCollection.Add(); CellClass cell = item.Cells[0]; item.Image = img; cell.Text = "Category 1"; // Add some sub items ItemClass subItem = item.Add(); RadioButtonPartClass rb = new RadioButtonPartClass(RadioButtonStateEnum.Checked); subItem.Cells[0].Parts.Add(rb); subItem.Cells[0].Parts.Add(new CheckBoxPartClass()); subItem.Cells[0].Parts.Add(new TextPartClass("Item 1")); subItem = item.Add(); rb = new RadioButtonPartClass(RadioButtonStateEnum.Unchecked); subItem.Cells[0].Parts.Add(rb); subItem.Cells[0].Parts.Add(new TextPartClass("Item 2")); subItem = item.Add(); rb = new RadioButtonPartClass(RadioButtonStateEnum.Unchecked); subItem.Cells[0].Parts.Add(rb); subItem.Cells[0].Parts.Add(new TextPartClass("Item 3")); sftTree1.Columns.MakeOptimal(0, false); sftTree1.RecalcHorizontalExtent(); sftTree1.Initializing = false; } // ItemClick event private void sftTree1_ItemClick(object sender, ItemClickEventArgs e) { Debug.Write("** ItemClick"); DumpValues(e); } // This is a small helper routine to show all properties and fields of an object private void DumpValues(object o) { PropertyInfo[] api = o.GetType().GetProperties(); foreach (PropertyInfo pi in api) Debug.Write(" " + pi.Name + " " + pi.GetValue(o, new object[] { })); FieldInfo[] afi = o.GetType().GetFields(); foreach (FieldInfo fi in afi) Debug.Write(" " + fi.Name + " " + fi.GetValue(o)); Debug.WriteLine(""); } } }