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
 | |
| 	}
 | |
| } |