using System;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Windows.Forms;
using AT.STO.UI.Win;
namespace Demo
{
public partial class MainForm : Form
{
#region Constructor / Destructor
public MainForm()
{
InitializeComponent();
}
#endregion
#region Form Events
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
InitializeDerived();
InitializePanel();
}
#endregion
#region Event Handler
private void DropDown_FinishEditing(object sender, DropDownValueChangedEventArgs e)
{
LogEvent((sender as Control).Name + ".FinishEditing", e.Value);
}
private void DropDown_ValueChanged(object sender, DropDownValueChangedEventArgs e)
{
LogEvent((sender as Control).Name + ".ValueChanged", e.Value);
}
#endregion
#region Private Methods
///
/// Populates a given DropDownTree.
///
///
private void CreateNodes(DropDownTree Tree)
{
DropDownNode root = new DropDownNode(1, "1");
Tree.Nodes.Clear();
Tree.Nodes.Add(root);
for (int i = 1; i <= 20; i++)
{
DropDownNode node = new DropDownNode(i * 1000, "1." + i.ToString("00"));
root.Nodes.Add(node);
for (int j = 1; j <= 2; j++)
{
node.Nodes.Add(new DropDownNode((i * 1000) + (j * 10), "1." + i.ToString("00") + "." + j.ToString()));
}
}
root.Expand();
}
private DropDownTree CreateTree()
{
DropDownTree tree = new DropDownTree();
tree.BorderStyle = BorderStyle.None; // border is drawn by the DropDownForm.
tree.Size = new Size(200, 300); // the DropDownPanel will be sized to make the tree fit.
CreateNodes(tree);
return tree;
}
///
/// Create and initialize the DerivedTreeCombo.
///
private void InitializeDerived()
{
derivedTreeCombo.DropDownControl.Size = new Size(200, 300);
CreateNodes(derivedTreeCombo.DropDownControl);
derivedTreeCombo.FinishEditing += new DropDownValueChangedEventHandler(DropDown_FinishEditing);
derivedTreeCombo.ValueChanged += new DropDownValueChangedEventHandler(DropDown_ValueChanged);
}
///
/// Create and initialize the DropDownTree.
///
///
private void InitializePanel()
{
treePanel.DropDownControl = CreateTree(); // make the DropDownTree the DropDownPanels control to display.
treePanel.FinishEditing += new DropDownValueChangedEventHandler(DropDown_FinishEditing);
treePanel.ValueChanged += new DropDownValueChangedEventHandler(DropDown_ValueChanged);
}
private void LogEvent(string Event, object Value)
{
if (txtMsg.Lines.Length > 20)
{
txtMsg.Clear();
}
txtMsg.AppendText(Event + ": " + ((Value == null) ? "user canceled" : Value.ToString()) + "\r\n");
}
#endregion
}
}