* UIComboTreeView:更新多选后编辑框的文字显示

This commit is contained in:
Sunny 2020-11-12 22:49:16 +08:00
parent 6f8fbfc0db
commit 3cbdf3e134
6 changed files with 39 additions and 1 deletions

Binary file not shown.

Binary file not shown.

View File

@ -311,6 +311,7 @@
this.uiComboTreeView1.Size = new System.Drawing.Size(150, 29); this.uiComboTreeView1.Size = new System.Drawing.Size(150, 29);
this.uiComboTreeView1.TabIndex = 43; this.uiComboTreeView1.TabIndex = 43;
this.uiComboTreeView1.TextAlignment = System.Drawing.ContentAlignment.MiddleLeft; this.uiComboTreeView1.TextAlignment = System.Drawing.ContentAlignment.MiddleLeft;
this.uiComboTreeView1.NodeSelected += new Sunny.UI.UIComboTreeView.OnNodeSelected(this.uiComboTreeView1_NodeSelected);
// //
// uiLine1 // uiLine1
// //
@ -350,6 +351,7 @@
this.uiComboTreeView2.Size = new System.Drawing.Size(150, 29); this.uiComboTreeView2.Size = new System.Drawing.Size(150, 29);
this.uiComboTreeView2.TabIndex = 46; this.uiComboTreeView2.TabIndex = 46;
this.uiComboTreeView2.TextAlignment = System.Drawing.ContentAlignment.MiddleLeft; this.uiComboTreeView2.TextAlignment = System.Drawing.ContentAlignment.MiddleLeft;
this.uiComboTreeView2.NodesSelected += new Sunny.UI.UIComboTreeView.OnNodesSelected(this.uiComboTreeView2_NodesSelected);
// //
// uiComboTreeView3 // uiComboTreeView3
// //

View File

@ -32,5 +32,15 @@ namespace Sunny.UI.Demo
uiComboBox1.Items.Add("102"); uiComboBox1.Items.Add("102");
uiComboBox1.Items.Add("103"); 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);
}
} }
} }

View File

@ -1,9 +1,12 @@
using System.ComponentModel; using System.ComponentModel;
using System.Drawing; using System.Drawing;
using System.Text;
using System.Windows.Forms; using System.Windows.Forms;
namespace Sunny.UI namespace Sunny.UI
{ {
[DefaultEvent("NodeSelected")]
[DefaultProperty("Nodes")]
[ToolboxItem(true)] [ToolboxItem(true)]
public class UIComboTreeView : UIDropControl public class UIComboTreeView : UIDropControl
{ {
@ -84,12 +87,35 @@ namespace Sunny.UI
} }
else 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); NodesSelected?.Invoke(this, Nodes);
} }
Invalidate(); 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) private void UIComboTreeView_ButtonClick(object sender, System.EventArgs e)
{ {
ItemForm.Size = ItemSize; ItemForm.Size = ItemSize;

View File

@ -741,7 +741,7 @@ namespace Sunny.UI
{ {
lineX -= Indent; lineX -= Indent;
if (pNode.Level == 0 && pNode.NextNode != null) if (pNode.NextNode != null)
e.Graphics.DrawLine(pn, lineX, lineY, lineX, e.Node.Bounds.Top); e.Graphics.DrawLine(pn, lineX, lineY, lineX, e.Node.Bounds.Top);
if (pNode.NextNode != null) if (pNode.NextNode != null)