* UIComboTreeView:增加CanSelectRootNode,单选时是否可选择父节点

This commit is contained in:
Sunny 2021-01-01 22:56:38 +08:00
parent 7b0f763324
commit 44ee2701c9
5 changed files with 29 additions and 20 deletions

Binary file not shown.

Binary file not shown.

View File

@ -56,19 +56,19 @@
treeNode9}); treeNode9});
System.Windows.Forms.TreeNode treeNode11 = new System.Windows.Forms.TreeNode("节点2"); System.Windows.Forms.TreeNode treeNode11 = new System.Windows.Forms.TreeNode("节点2");
System.Windows.Forms.TreeNode treeNode12 = new System.Windows.Forms.TreeNode("节点3"); System.Windows.Forms.TreeNode treeNode12 = new System.Windows.Forms.TreeNode("节点3");
System.Windows.Forms.TreeNode treeNode13 = new System.Windows.Forms.TreeNode("节点0"); System.Windows.Forms.TreeNode treeNode13 = new System.Windows.Forms.TreeNode("节点00");
System.Windows.Forms.TreeNode treeNode14 = new System.Windows.Forms.TreeNode("节点1"); System.Windows.Forms.TreeNode treeNode14 = new System.Windows.Forms.TreeNode("节点01");
System.Windows.Forms.TreeNode treeNode15 = new System.Windows.Forms.TreeNode("节点2"); System.Windows.Forms.TreeNode treeNode15 = new System.Windows.Forms.TreeNode("节点02");
System.Windows.Forms.TreeNode treeNode16 = new System.Windows.Forms.TreeNode("节点3"); System.Windows.Forms.TreeNode treeNode16 = new System.Windows.Forms.TreeNode("节点03");
System.Windows.Forms.TreeNode treeNode17 = new System.Windows.Forms.TreeNode("节点0", new System.Windows.Forms.TreeNode[] { System.Windows.Forms.TreeNode treeNode17 = new System.Windows.Forms.TreeNode("节点0", new System.Windows.Forms.TreeNode[] {
treeNode13, treeNode13,
treeNode14, treeNode14,
treeNode15, treeNode15,
treeNode16}); treeNode16});
System.Windows.Forms.TreeNode treeNode18 = new System.Windows.Forms.TreeNode("节点4"); System.Windows.Forms.TreeNode treeNode18 = new System.Windows.Forms.TreeNode("节点11");
System.Windows.Forms.TreeNode treeNode19 = new System.Windows.Forms.TreeNode("节点5"); System.Windows.Forms.TreeNode treeNode19 = new System.Windows.Forms.TreeNode("节点12");
System.Windows.Forms.TreeNode treeNode20 = new System.Windows.Forms.TreeNode("节点6"); System.Windows.Forms.TreeNode treeNode20 = new System.Windows.Forms.TreeNode("节点13");
System.Windows.Forms.TreeNode treeNode21 = new System.Windows.Forms.TreeNode("节点7"); System.Windows.Forms.TreeNode treeNode21 = new System.Windows.Forms.TreeNode("节点14");
System.Windows.Forms.TreeNode treeNode22 = new System.Windows.Forms.TreeNode("节点1", new System.Windows.Forms.TreeNode[] { System.Windows.Forms.TreeNode treeNode22 = new System.Windows.Forms.TreeNode("节点1", new System.Windows.Forms.TreeNode[] {
treeNode18, treeNode18,
treeNode19, treeNode19,
@ -412,23 +412,23 @@
this.uiComboTreeView4.MinimumSize = new System.Drawing.Size(63, 0); this.uiComboTreeView4.MinimumSize = new System.Drawing.Size(63, 0);
this.uiComboTreeView4.Name = "uiComboTreeView4"; this.uiComboTreeView4.Name = "uiComboTreeView4";
treeNode13.Name = "节点0"; treeNode13.Name = "节点0";
treeNode13.Text = "节点0"; treeNode13.Text = "节点00";
treeNode14.Name = "节点1"; treeNode14.Name = "节点1";
treeNode14.Text = "节点1"; treeNode14.Text = "节点01";
treeNode15.Name = "节点2"; treeNode15.Name = "节点2";
treeNode15.Text = "节点2"; treeNode15.Text = "节点02";
treeNode16.Name = "节点3"; treeNode16.Name = "节点3";
treeNode16.Text = "节点3"; treeNode16.Text = "节点03";
treeNode17.Name = "节点0"; treeNode17.Name = "节点0";
treeNode17.Text = "节点0"; treeNode17.Text = "节点0";
treeNode18.Name = "节点4"; treeNode18.Name = "节点4";
treeNode18.Text = "节点4"; treeNode18.Text = "节点11";
treeNode19.Name = "节点5"; treeNode19.Name = "节点5";
treeNode19.Text = "节点5"; treeNode19.Text = "节点12";
treeNode20.Name = "节点6"; treeNode20.Name = "节点6";
treeNode20.Text = "节点6"; treeNode20.Text = "节点13";
treeNode21.Name = "节点7"; treeNode21.Name = "节点7";
treeNode21.Text = "节点7"; treeNode21.Text = "节点14";
treeNode22.Name = "节点1"; treeNode22.Name = "节点1";
treeNode22.Text = "节点1"; treeNode22.Text = "节点1";
treeNode23.Name = "节点2"; treeNode23.Name = "节点2";

View File

@ -22,6 +22,8 @@ namespace Sunny.UI
} }
} }
public bool CanSelectRootNode { get; set; }
public UIComboTreeViewItem() public UIComboTreeViewItem()
{ {
InitializeComponent(); InitializeComponent();
@ -63,7 +65,7 @@ namespace Sunny.UI
this.panel.MinimumSize = new System.Drawing.Size(1, 1); this.panel.MinimumSize = new System.Drawing.Size(1, 1);
this.panel.Name = "panel"; this.panel.Name = "panel";
this.panel.RadiusSides = Sunny.UI.UICornerRadiusSides.None; this.panel.RadiusSides = Sunny.UI.UICornerRadiusSides.None;
this.panel.RectSides = ((System.Windows.Forms.ToolStripStatusLabelBorderSides)(((System.Windows.Forms.ToolStripStatusLabelBorderSides.Left | System.Windows.Forms.ToolStripStatusLabelBorderSides.Right) this.panel.RectSides = ((System.Windows.Forms.ToolStripStatusLabelBorderSides)(((System.Windows.Forms.ToolStripStatusLabelBorderSides.Left | System.Windows.Forms.ToolStripStatusLabelBorderSides.Right)
| System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom))); | System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom)));
this.panel.Size = new System.Drawing.Size(250, 44); this.panel.Size = new System.Drawing.Size(250, 44);
this.panel.TabIndex = 1; this.panel.TabIndex = 1;
@ -120,10 +122,13 @@ namespace Sunny.UI
private void TreeView_NodeMouseClick(object sender, System.Windows.Forms.TreeNodeMouseClickEventArgs e) private void TreeView_NodeMouseClick(object sender, System.Windows.Forms.TreeNodeMouseClickEventArgs e)
{ {
if (!treeView.CheckBoxes && e.Node.Nodes.Count == 0) if (!treeView.CheckBoxes)
{ {
DoValueChanged(this, e.Node); if (e.Node.Nodes.Count == 0 || CanSelectRootNode)
CloseParent(); {
DoValueChanged(this, e.Node);
CloseParent();
}
} }
} }

View File

@ -53,6 +53,9 @@ namespace Sunny.UI
set => item.CheckBoxes = value; set => item.CheckBoxes = value;
} }
[DefaultValue(false), Description("单选时是否可选择父节点"), Category("SunnyUI")]
public bool CanSelectRootNode { get; set; }
[DefaultValue(false), Description("是否显示连线"), Category("SunnyUI")] [DefaultValue(false), Description("是否显示连线"), Category("SunnyUI")]
public bool ShowLines public bool ShowLines
{ {
@ -127,6 +130,7 @@ namespace Sunny.UI
{ {
ItemForm.Size = ItemSize; ItemForm.Size = ItemSize;
item.TreeView.ExpandAll(); item.TreeView.ExpandAll();
item.CanSelectRootNode = CanSelectRootNode;
ItemForm.Show(this); ItemForm.Show(this);
} }