diff --git a/Bin/SunnyUI.Demo.exe b/Bin/SunnyUI.Demo.exe index fb71eb7a..597e4cfe 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 9c4b3f4e..6116ec36 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 0dc19210..ef867db5 100644 --- a/SunnyUI.Demo/Controls/FCombobox.Designer.cs +++ b/SunnyUI.Demo/Controls/FCombobox.Designer.cs @@ -56,19 +56,19 @@ treeNode9}); 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 treeNode13 = new System.Windows.Forms.TreeNode("节点0"); - System.Windows.Forms.TreeNode treeNode14 = new System.Windows.Forms.TreeNode("节点1"); - System.Windows.Forms.TreeNode treeNode15 = new System.Windows.Forms.TreeNode("节点2"); - System.Windows.Forms.TreeNode treeNode16 = new System.Windows.Forms.TreeNode("节点3"); + System.Windows.Forms.TreeNode treeNode13 = new System.Windows.Forms.TreeNode("节点00"); + System.Windows.Forms.TreeNode treeNode14 = new System.Windows.Forms.TreeNode("节点01"); + System.Windows.Forms.TreeNode treeNode15 = new System.Windows.Forms.TreeNode("节点02"); + 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[] { treeNode13, treeNode14, treeNode15, treeNode16}); - System.Windows.Forms.TreeNode treeNode18 = new System.Windows.Forms.TreeNode("节点4"); - System.Windows.Forms.TreeNode treeNode19 = new System.Windows.Forms.TreeNode("节点5"); - System.Windows.Forms.TreeNode treeNode20 = new System.Windows.Forms.TreeNode("节点6"); - System.Windows.Forms.TreeNode treeNode21 = new System.Windows.Forms.TreeNode("节点7"); + System.Windows.Forms.TreeNode treeNode18 = new System.Windows.Forms.TreeNode("节点11"); + System.Windows.Forms.TreeNode treeNode19 = new System.Windows.Forms.TreeNode("节点12"); + System.Windows.Forms.TreeNode treeNode20 = new System.Windows.Forms.TreeNode("节点13"); + 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[] { treeNode18, treeNode19, @@ -412,23 +412,23 @@ this.uiComboTreeView4.MinimumSize = new System.Drawing.Size(63, 0); this.uiComboTreeView4.Name = "uiComboTreeView4"; treeNode13.Name = "节点0"; - treeNode13.Text = "节点0"; + treeNode13.Text = "节点00"; treeNode14.Name = "节点1"; - treeNode14.Text = "节点1"; + treeNode14.Text = "节点01"; treeNode15.Name = "节点2"; - treeNode15.Text = "节点2"; + treeNode15.Text = "节点02"; treeNode16.Name = "节点3"; - treeNode16.Text = "节点3"; + treeNode16.Text = "节点03"; treeNode17.Name = "节点0"; treeNode17.Text = "节点0"; treeNode18.Name = "节点4"; - treeNode18.Text = "节点4"; + treeNode18.Text = "节点11"; treeNode19.Name = "节点5"; - treeNode19.Text = "节点5"; + treeNode19.Text = "节点12"; treeNode20.Name = "节点6"; - treeNode20.Text = "节点6"; + treeNode20.Text = "节点13"; treeNode21.Name = "节点7"; - treeNode21.Text = "节点7"; + treeNode21.Text = "节点14"; treeNode22.Name = "节点1"; treeNode22.Text = "节点1"; treeNode23.Name = "节点2"; diff --git a/SunnyUI/Controls/DropItem/UIComboTreeViewItem.cs b/SunnyUI/Controls/DropItem/UIComboTreeViewItem.cs index d7baf079..f704cccb 100644 --- a/SunnyUI/Controls/DropItem/UIComboTreeViewItem.cs +++ b/SunnyUI/Controls/DropItem/UIComboTreeViewItem.cs @@ -22,6 +22,8 @@ namespace Sunny.UI } } + public bool CanSelectRootNode { get; set; } + public UIComboTreeViewItem() { InitializeComponent(); @@ -63,7 +65,7 @@ namespace Sunny.UI this.panel.MinimumSize = new System.Drawing.Size(1, 1); this.panel.Name = "panel"; 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))); this.panel.Size = new System.Drawing.Size(250, 44); this.panel.TabIndex = 1; @@ -120,10 +122,13 @@ namespace Sunny.UI 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); - CloseParent(); + if (e.Node.Nodes.Count == 0 || CanSelectRootNode) + { + DoValueChanged(this, e.Node); + CloseParent(); + } } } diff --git a/SunnyUI/Controls/UIComboTreeView.cs b/SunnyUI/Controls/UIComboTreeView.cs index 15efa045..89e7637a 100644 --- a/SunnyUI/Controls/UIComboTreeView.cs +++ b/SunnyUI/Controls/UIComboTreeView.cs @@ -53,6 +53,9 @@ namespace Sunny.UI set => item.CheckBoxes = value; } + [DefaultValue(false), Description("单选时是否可选择父节点"), Category("SunnyUI")] + public bool CanSelectRootNode { get; set; } + [DefaultValue(false), Description("是否显示连线"), Category("SunnyUI")] public bool ShowLines { @@ -127,6 +130,7 @@ namespace Sunny.UI { ItemForm.Size = ItemSize; item.TreeView.ExpandAll(); + item.CanSelectRootNode = CanSelectRootNode; ItemForm.Show(this); }