* 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});
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";

View File

@ -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();
}
}
}

View File

@ -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);
}