diff --git a/Bin/SunnyUI.Demo.exe b/Bin/SunnyUI.Demo.exe index 14b8d54e..fc62196c 100644 Binary files a/Bin/SunnyUI.Demo.exe and b/Bin/SunnyUI.Demo.exe differ diff --git a/Bin/SunnyUI.dll b/Bin/SunnyUI.dll index fee66150..1a60bf4c 100644 Binary files a/Bin/SunnyUI.dll and b/Bin/SunnyUI.dll differ diff --git a/SunnyUI.Demo/Controls/FCombobox.Designer.cs b/SunnyUI.Demo/Controls/FCombobox.Designer.cs index 7243714a..7e8f60be 100644 --- a/SunnyUI.Demo/Controls/FCombobox.Designer.cs +++ b/SunnyUI.Demo/Controls/FCombobox.Designer.cs @@ -311,6 +311,7 @@ this.uiComboTreeView1.Size = new System.Drawing.Size(150, 29); this.uiComboTreeView1.TabIndex = 43; this.uiComboTreeView1.TextAlignment = System.Drawing.ContentAlignment.MiddleLeft; + this.uiComboTreeView1.NodeSelected += new Sunny.UI.UIComboTreeView.OnNodeSelected(this.uiComboTreeView1_NodeSelected); // // uiLine1 // @@ -350,6 +351,7 @@ this.uiComboTreeView2.Size = new System.Drawing.Size(150, 29); this.uiComboTreeView2.TabIndex = 46; this.uiComboTreeView2.TextAlignment = System.Drawing.ContentAlignment.MiddleLeft; + this.uiComboTreeView2.NodesSelected += new Sunny.UI.UIComboTreeView.OnNodesSelected(this.uiComboTreeView2_NodesSelected); // // uiComboTreeView3 // diff --git a/SunnyUI.Demo/Controls/FCombobox.cs b/SunnyUI.Demo/Controls/FCombobox.cs index ff317177..8a902fa7 100644 --- a/SunnyUI.Demo/Controls/FCombobox.cs +++ b/SunnyUI.Demo/Controls/FCombobox.cs @@ -32,5 +32,15 @@ namespace Sunny.UI.Demo uiComboBox1.Items.Add("102"); uiComboBox1.Items.Add("103"); } + + private void uiComboTreeView1_NodeSelected(object sender, System.Windows.Forms.TreeNode node) + { + ShowInfoTip(node.Text); + } + + private void uiComboTreeView2_NodesSelected(object sender, System.Windows.Forms.TreeNodeCollection node) + { + ShowInfoTip(uiComboTreeView2.Text); + } } } diff --git a/SunnyUI/Controls/UIComboTreeView.cs b/SunnyUI/Controls/UIComboTreeView.cs index 552faac8..8eb90545 100644 --- a/SunnyUI/Controls/UIComboTreeView.cs +++ b/SunnyUI/Controls/UIComboTreeView.cs @@ -1,9 +1,12 @@ using System.ComponentModel; using System.Drawing; +using System.Text; using System.Windows.Forms; namespace Sunny.UI { + [DefaultEvent("NodeSelected")] + [DefaultProperty("Nodes")] [ToolboxItem(true)] public class UIComboTreeView : UIDropControl { @@ -84,12 +87,35 @@ namespace Sunny.UI } else { + StringBuilder sb = new StringBuilder(); + foreach (TreeNode node in Nodes) + { + if (node.Checked) sb.Append(node.Text + "; "); + AddChildNodeText(node, sb); + } + + Text = sb.ToString(); NodesSelected?.Invoke(this, Nodes); } Invalidate(); } + private void AddChildNodeText(TreeNode node, StringBuilder sb) + { + if (node.Nodes.Count > 0) + { + foreach (TreeNode child in node.Nodes) + { + if (child.Checked) + sb.Append(child.Text + "; "); + + if (child.Nodes.Count > 0) + AddChildNodeText(child, sb); + } + } + } + private void UIComboTreeView_ButtonClick(object sender, System.EventArgs e) { ItemForm.Size = ItemSize; diff --git a/SunnyUI/Controls/UITreeView.cs b/SunnyUI/Controls/UITreeView.cs index e5f6d41b..15bbdfc2 100644 --- a/SunnyUI/Controls/UITreeView.cs +++ b/SunnyUI/Controls/UITreeView.cs @@ -741,7 +741,7 @@ namespace Sunny.UI { lineX -= Indent; - if (pNode.Level == 0 && pNode.NextNode != null) + if (pNode.NextNode != null) e.Graphics.DrawLine(pn, lineX, lineY, lineX, e.Node.Bounds.Top); if (pNode.NextNode != null)