110 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			110 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
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
 | 
						|
		/// <summary>
 | 
						|
		/// Populates a given DropDownTree.
 | 
						|
		/// </summary>
 | 
						|
		/// <param name="Tree"></param>
 | 
						|
		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;
 | 
						|
		}
 | 
						|
		
 | 
						|
		/// <summary>
 | 
						|
		/// Create and initialize the DerivedTreeCombo.
 | 
						|
		/// </summary>
 | 
						|
		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);
 | 
						|
		}
 | 
						|
		
 | 
						|
		/// <summary>
 | 
						|
		/// Create and initialize the DropDownTree.
 | 
						|
		/// </summary>
 | 
						|
		/// <returns></returns>
 | 
						|
		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
 | 
						|
	}
 | 
						|
} |