diff --git a/SunnyUI/Controls/UIDataGridView.cs b/SunnyUI/Controls/UIDataGridView.cs
index 2a4a95e6..dd8ae6e9 100644
--- a/SunnyUI/Controls/UIDataGridView.cs
+++ b/SunnyUI/Controls/UIDataGridView.cs
@@ -592,11 +592,15 @@ namespace Sunny.UI
/// 是否显示表格线
///
[Description("是否显示表格线"), Category("SunnyUI")]
- [DefaultValue(false)]
+ [DefaultValue(true)]
public bool ShowGridLine
{
get => CellBorderStyle == DataGridViewCellBorderStyle.Single;
- set => CellBorderStyle = value ? DataGridViewCellBorderStyle.Single : DataGridViewCellBorderStyle.None;
+ set
+ {
+ CellBorderStyle = value ? DataGridViewCellBorderStyle.Single : DataGridViewCellBorderStyle.None;
+ VBar.ShowLeftLine = value;
+ }
}
private Color _rectColor = UIColor.Blue;
diff --git a/SunnyUI/Controls/UINavBar.cs b/SunnyUI/Controls/UINavBar.cs
index 78821cf3..47daf3db 100644
--- a/SunnyUI/Controls/UINavBar.cs
+++ b/SunnyUI/Controls/UINavBar.cs
@@ -22,6 +22,7 @@
* 2021-06-08: V3.0.4 标题选中高亮颜色增加可调整高度
* 2021-08-07: V3.0.5 显示/隐藏子节点提示箭头,增加选中项圆角
* 2022-03-19: V3.1.1 重构主题配色
+ * 2022-04-14: V3.1.3 重构扩展函数
******************************************************************************/
using System;
@@ -133,31 +134,6 @@ namespace Sunny.UI
[Description("关联的TabControl"), Category("SunnyUI")]
public UITabControl TabControl { get; set; }
- public void SetNodeItem(TreeNode node, NavMenuItem item)
- {
- MenuHelper.Add(node, item);
- }
-
- public void SetNodePageIndex(TreeNode node, int pageIndex)
- {
- MenuHelper.SetPageIndex(node, pageIndex);
- }
-
- public int GetPageIndex(TreeNode node)
- {
- return MenuHelper.GetPageIndex(node);
- }
-
- public void SetNodeSymbol(TreeNode node, int symbol, int symbolSize = 24)
- {
- MenuHelper.SetSymbol(node, symbol, symbolSize);
- }
-
- public void SetNodeImageIndex(TreeNode node, int imageIndex)
- {
- node.ImageIndex = imageIndex;
- }
-
///
/// Tag字符串
///
@@ -407,12 +383,12 @@ namespace Sunny.UI
if (Nodes.Count > 0 && value >= 0 && value < Nodes.Count)
{
selectedIndex = value;
- NodeMouseClick?.Invoke(Nodes[SelectedIndex], selectedIndex, MenuHelper.GetPageIndex(Nodes[SelectedIndex]));
+ NodeMouseClick?.Invoke(Nodes[SelectedIndex], selectedIndex, GetPageIndex(Nodes[SelectedIndex]));
if (Nodes[value].Nodes.Count == 0)
{
- MenuItemClick?.Invoke(Nodes[SelectedIndex].Text, selectedIndex, MenuHelper.GetPageIndex(Nodes[SelectedIndex]));
- TabControl?.SelectPage(MenuHelper.GetPageIndex(Nodes[SelectedIndex]));
+ MenuItemClick?.Invoke(Nodes[SelectedIndex].Text, selectedIndex, GetPageIndex(Nodes[SelectedIndex]));
+ TabControl?.SelectPage(GetPageIndex(Nodes[SelectedIndex]));
}
Invalidate();
@@ -692,9 +668,9 @@ namespace Sunny.UI
ToolStripMenuItem item = (ToolStripMenuItem)sender;
if (item.Tag != null && item.Tag is TreeNode node)
{
- TabControl?.SelectPage(MenuHelper.GetPageIndex(node));
- MenuItemClick?.Invoke(item.Text, selectedIndex, MenuHelper.GetPageIndex(node));
- NodeMouseClick?.Invoke(node, selectedIndex, MenuHelper.GetPageIndex(node));
+ TabControl?.SelectPage(GetPageIndex(node));
+ MenuItemClick?.Invoke(item.Text, selectedIndex, GetPageIndex(node));
+ NodeMouseClick?.Invoke(node, selectedIndex, GetPageIndex(node));
}
}
@@ -748,59 +724,68 @@ namespace Sunny.UI
public string Version { get; }
+ #region 扩展函数
+
+ public UINavBar SetNodePageIndex(TreeNode node, int pageIndex)
+ {
+ MenuHelper.SetPageIndex(node, pageIndex);
+ return this;
+ }
+
+ public UINavBar SetNodeSymbol(TreeNode node, int symbol, int symbolSize = 24)
+ {
+ MenuHelper.SetSymbol(node, symbol, symbolSize);
+ return this;
+ }
+
+ public UINavBar SetNodeImageIndex(TreeNode node, int imageIndex)
+ {
+ node.ImageIndex = imageIndex;
+ return this;
+ }
+
public TreeNode CreateNode(string text, int pageIndex)
{
return CreateNode(new NavMenuItem(text, pageIndex));
}
+ public TreeNode CreateNode(string text, Guid pageGuid)
+ {
+ return CreateNode(new NavMenuItem(text, pageGuid));
+ }
+
public TreeNode CreateNode(UIPage page)
{
return CreateNode(new NavMenuItem(page));
}
- public TreeNode CreateNode(NavMenuItem item)
- {
- TreeNode node = new TreeNode(item.Text);
- Nodes.Add(node);
- SetNodeItem(node, item);
- return node;
- }
-
- public TreeNode CreateNode(string text, int imageIndex, int pageIndex)
- {
- return CreateNode(new NavMenuItem(text, pageIndex), imageIndex);
- }
-
- public TreeNode CreateNode(UIPage page, int imageIndex)
- {
- return CreateNode(new NavMenuItem(page), imageIndex);
- }
-
- public TreeNode CreateNode(NavMenuItem item, int imageIndex)
- {
- TreeNode node = new TreeNode(item.Text);
- Nodes.Add(node);
- SetNodeItem(node, item);
- node.ImageIndex = imageIndex;
- return node;
- }
-
public TreeNode CreateNode(string text, int symbol, int symbolSize, int pageIndex)
{
- return CreateNode(new NavMenuItem(text, pageIndex), symbol, symbolSize);
+ var node = CreateNode(text, pageIndex);
+ SetNodeSymbol(node, symbol, symbolSize);
+ return node;
}
- public TreeNode CreateNode(UIPage page, int symbol, int symbolSize)
+ public TreeNode CreateChildNode(TreeNode parent, string text, Guid pageGuid)
{
- return CreateNode(new NavMenuItem(page), symbol, symbolSize);
+ return CreateChildNode(parent, new NavMenuItem(text, pageGuid));
}
- public TreeNode CreateNode(NavMenuItem item, int symbol, int symbolSize)
+ public int GetPageIndex(TreeNode node)
+ {
+ return MenuHelper.GetPageIndex(node);
+ }
+
+ private void SetNodeItem(TreeNode node, NavMenuItem item)
+ {
+ MenuHelper.Add(node, item);
+ }
+
+ private TreeNode CreateNode(NavMenuItem item)
{
TreeNode node = new TreeNode(item.Text);
Nodes.Add(node);
SetNodeItem(node, item);
- MenuHelper.SetSymbol(node, symbol, symbolSize);
return node;
}
@@ -814,7 +799,14 @@ namespace Sunny.UI
return CreateChildNode(parent, new NavMenuItem(page));
}
- public TreeNode CreateChildNode(TreeNode parent, NavMenuItem item)
+ public TreeNode CreateChildNode(TreeNode parent, string text, int symbol, int symbolSize, int pageIndex)
+ {
+ var node = CreateChildNode(parent, text, pageIndex);
+ SetNodeSymbol(node, symbol, symbolSize);
+ return node;
+ }
+
+ private TreeNode CreateChildNode(TreeNode parent, NavMenuItem item)
{
TreeNode childNode = new TreeNode(item.Text);
parent.Nodes.Add(childNode);
@@ -822,42 +814,6 @@ namespace Sunny.UI
return childNode;
}
- public TreeNode CreateChildNode(TreeNode parent, int imageIndex, string text, int pageIndex)
- {
- return CreateChildNode(parent, imageIndex, new NavMenuItem(text, pageIndex));
- }
-
- public TreeNode CreateChildNode(TreeNode parent, int imageIndex, UIPage page)
- {
- return CreateChildNode(parent, imageIndex, new NavMenuItem(page));
- }
-
- public TreeNode CreateChildNode(TreeNode parent, int imageIndex, NavMenuItem item)
- {
- TreeNode childNode = new TreeNode(item.Text);
- parent.Nodes.Add(childNode);
- SetNodeItem(childNode, item);
- childNode.ImageIndex = imageIndex;
- return childNode;
- }
-
- public TreeNode CreateChildNode(TreeNode parent, int symbol, int symbolSize, string text, int pageIndex)
- {
- return CreateChildNode(parent, symbol, symbolSize, new NavMenuItem(text, pageIndex));
- }
-
- public TreeNode CreateChildNode(TreeNode parent, int symbol, int symbolSize, UIPage page)
- {
- return CreateChildNode(parent, symbol, symbolSize, new NavMenuItem(page));
- }
-
- public TreeNode CreateChildNode(TreeNode parent, int symbol, int symbolSize, NavMenuItem item)
- {
- TreeNode childNode = new TreeNode(item.Text);
- parent.Nodes.Add(childNode);
- SetNodeItem(childNode, item);
- MenuHelper.SetSymbol(childNode, symbol, symbolSize);
- return childNode;
- }
+ #endregion 扩展函数
}
}
\ No newline at end of file
diff --git a/SunnyUI/Controls/UINavMenu.cs b/SunnyUI/Controls/UINavMenu.cs
index be8df451..7b4abd33 100644
--- a/SunnyUI/Controls/UINavMenu.cs
+++ b/SunnyUI/Controls/UINavMenu.cs
@@ -26,6 +26,7 @@
* 2022-01-02: V3.0.9 滚动条可设置颜色
* 2022-03-19: V3.1.1 重构主题配色
* 2022-03-24: V3.1.1 修复TipsText显示位置
+ * 2022-04-14: V3.1.3 重构扩展函数
******************************************************************************/
using System;
@@ -554,43 +555,6 @@ namespace Sunny.UI
set => checkBoxes = false;
}
- private readonly NavMenuHelper MenuHelper = new NavMenuHelper();
-
- public int GetPageIndex(TreeNode node)
- {
- return MenuHelper.GetPageIndex(node);
- }
-
- public void SetNodeItem(TreeNode node, NavMenuItem item)
- {
- MenuHelper.Add(node, item);
- }
-
- public void SetNodePageIndex(TreeNode node, int pageIndex)
- {
- MenuHelper.SetPageIndex(node, pageIndex);
- }
-
- public void SetNodeTipsText(TreeNode node, string nodeTipsText)
- {
- MenuHelper.SetTipsText(node, nodeTipsText);
- }
-
- public void SetNodeTipsText(TreeNode node, string nodeTipsText, Color nodeTipsBackColor, Color nodeTipsForeColor)
- {
- MenuHelper.SetTipsText(node, nodeTipsText, nodeTipsBackColor, nodeTipsForeColor);
- }
-
- public void SetNodeSymbol(TreeNode node, int symbol, int symbolSize = 24)
- {
- MenuHelper.SetSymbol(node, symbol, symbolSize);
- }
-
- public void SetNodeImageIndex(TreeNode node, int imageIndex)
- {
- node.ImageIndex = imageIndex;
- }
-
private bool showSecondBackColor;
[DefaultValue(false)]
@@ -882,26 +846,6 @@ namespace Sunny.UI
ShowSelectedNode();
}
- public void SelectPage(int pageIndex)
- {
- var node = MenuHelper.GetTreeNode(pageIndex);
- if (node != null)
- {
- SelectedNode = node;
- ShowSelectedNode();
- }
- }
-
- public void SelectPage(Guid pageGuid)
- {
- var node = MenuHelper.GetTreeNode(pageGuid);
- if (node != null)
- {
- SelectedNode = node;
- ShowSelectedNode();
- }
- }
-
private void ShowSelectedNode()
{
NavMenuItem item = MenuHelper[SelectedNode];
@@ -920,12 +864,7 @@ namespace Sunny.UI
}
}
- MenuItemClick?.Invoke(SelectedNode, MenuHelper[SelectedNode], MenuHelper.GetPageIndex(SelectedNode));
- }
-
- public TreeNode GetTreeNode(int pageIndex)
- {
- return MenuHelper.GetTreeNode(pageIndex);
+ MenuItemClick?.Invoke(SelectedNode, MenuHelper[SelectedNode], GetPageIndex(SelectedNode));
}
protected override void OnMouseWheel(MouseEventArgs e)
@@ -1028,64 +967,99 @@ namespace Sunny.UI
Win32.User.ShowScrollBar(Handle, 3, false);
}
+ #region 扩展函数
+ private readonly NavMenuHelper MenuHelper = new NavMenuHelper();
+
+ public void SelectPage(int pageIndex)
+ {
+ var node = MenuHelper.GetTreeNode(pageIndex);
+ if (node != null)
+ {
+ SelectedNode = node;
+ ShowSelectedNode();
+ }
+ }
+
+ public void SelectPage(Guid pageGuid)
+ {
+ var node = MenuHelper.GetTreeNode(pageGuid);
+ if (node != null)
+ {
+ SelectedNode = node;
+ ShowSelectedNode();
+ }
+ }
+
+ public int GetPageIndex(TreeNode node)
+ {
+ return MenuHelper.GetPageIndex(node);
+ }
+
+ public TreeNode GetTreeNode(int pageIndex)
+ {
+ return MenuHelper.GetTreeNode(pageIndex);
+ }
+
+ private void SetNodeItem(TreeNode node, NavMenuItem item)
+ {
+ MenuHelper.Add(node, item);
+ }
+
+ public UINavMenu SetNodePageIndex(TreeNode node, int pageIndex)
+ {
+ MenuHelper.SetPageIndex(node, pageIndex);
+ return this;
+ }
+
+ public UINavMenu SetNodeSymbol(TreeNode node, int symbol, int symbolSize = 24)
+ {
+ MenuHelper.SetSymbol(node, symbol, symbolSize);
+ return this;
+ }
+
+ public UINavMenu SetNodeImageIndex(TreeNode node, int imageIndex)
+ {
+ node.ImageIndex = imageIndex;
+ return this;
+ }
+
+ public void SetNodeTipsText(TreeNode node, string nodeTipsText)
+ {
+ MenuHelper.SetTipsText(node, nodeTipsText);
+ }
+
+ public void SetNodeTipsText(TreeNode node, string nodeTipsText, Color nodeTipsBackColor, Color nodeTipsForeColor)
+ {
+ MenuHelper.SetTipsText(node, nodeTipsText, nodeTipsBackColor, nodeTipsForeColor);
+ }
+
public TreeNode CreateNode(string text, int pageIndex)
{
return CreateNode(new NavMenuItem(text, pageIndex));
}
+ public TreeNode CreateNode(string text, Guid pageGuid)
+ {
+ return CreateNode(new NavMenuItem(text, pageGuid));
+ }
+
public TreeNode CreateNode(UIPage page)
{
return CreateNode(new NavMenuItem(page));
}
- public TreeNode CreateNode(NavMenuItem item)
- {
- TreeNode node = new TreeNode(item.Text);
- Nodes.Add(node);
- SetNodeItem(node, item);
- return node;
- }
-
- public TreeNode CreateNode(string text, int imageIndex, int pageIndex)
- {
- return CreateNode(new NavMenuItem(text, pageIndex), imageIndex);
- }
-
- public TreeNode CreateNode(UIPage page, int imageIndex)
- {
- return CreateNode(new NavMenuItem(page), imageIndex);
- }
-
- public TreeNode CreateNode(NavMenuItem item, int imageIndex)
- {
- TreeNode node = new TreeNode(item.Text);
- Nodes.Add(node);
- SetNodeItem(node, item);
- node.ImageIndex = imageIndex;
- return node;
- }
-
- public TreeNode CreateNode(int symbol, int symbolSize, UIPage page)
- {
- return CreateNode(new NavMenuItem(page), symbol, symbolSize);
- }
-
public TreeNode CreateNode(string text, int symbol, int symbolSize, int pageIndex)
{
- return CreateNode(new NavMenuItem(text, pageIndex), symbol, symbolSize);
+ var node = CreateNode(text, pageIndex);
+ SetNodeSymbol(node, symbol, symbolSize);
+ return node;
}
- public TreeNode CreateNode(UIPage page, int symbol, int symbolSize)
- {
- return CreateNode(new NavMenuItem(page), symbol, symbolSize);
- }
-
- public TreeNode CreateNode(NavMenuItem item, int symbol, int symbolSize)
+ private TreeNode CreateNode(NavMenuItem item)
{
TreeNode node = new TreeNode(item.Text);
Nodes.Add(node);
SetNodeItem(node, item);
- MenuHelper.SetSymbol(node, symbol, symbolSize);
return node;
}
@@ -1094,6 +1068,11 @@ namespace Sunny.UI
return CreateChildNode(parent, new NavMenuItem(text, pageIndex));
}
+ public TreeNode CreateChildNode(TreeNode parent, string text, Guid pageGuid)
+ {
+ return CreateChildNode(parent, new NavMenuItem(text, pageGuid));
+ }
+
public TreeNode CreateChildNode(TreeNode parent, UIPage page)
{
var childNode = CreateChildNode(parent, new NavMenuItem(page));
@@ -1105,7 +1084,14 @@ namespace Sunny.UI
return childNode;
}
- public TreeNode CreateChildNode(TreeNode parent, NavMenuItem item)
+ public TreeNode CreateChildNode(TreeNode parent, string text, int symbol, int symbolSize, int pageIndex)
+ {
+ var node = CreateChildNode(parent, text, pageIndex);
+ SetNodeSymbol(node, symbol, symbolSize);
+ return node;
+ }
+
+ private TreeNode CreateChildNode(TreeNode parent, NavMenuItem item)
{
TreeNode childNode = new TreeNode(item.Text);
parent.Nodes.Add(childNode);
@@ -1113,44 +1099,6 @@ namespace Sunny.UI
return childNode;
}
- public TreeNode CreateChildNode(TreeNode parent, int imageIndex, string text, int pageIndex)
- {
- return CreateChildNode(parent, imageIndex, new NavMenuItem(text, pageIndex));
- }
-
- public TreeNode CreateChildNode(TreeNode parent, int imageIndex, UIPage page)
- {
- return CreateChildNode(parent, imageIndex, new NavMenuItem(page));
- }
-
- public TreeNode CreateChildNode(TreeNode parent, int imageIndex, NavMenuItem item)
- {
- TreeNode childNode = new TreeNode(item.Text);
- parent.Nodes.Add(childNode);
- SetNodeItem(childNode, item);
- childNode.ImageIndex = imageIndex;
- return childNode;
- }
-
- public TreeNode CreateChildNode(TreeNode parent, int symbol, int symbolSize, string text, int pageIndex)
- {
- return CreateChildNode(parent, symbol, symbolSize, new NavMenuItem(text, pageIndex));
- }
-
- public TreeNode CreateChildNode(TreeNode parent, int symbol, int symbolSize, UIPage page)
- {
- return CreateChildNode(parent, symbol, symbolSize, new NavMenuItem(page));
- }
-
- public TreeNode CreateChildNode(TreeNode parent, int symbol, int symbolSize, NavMenuItem item)
- {
- TreeNode childNode = new TreeNode(item.Text);
- parent.Nodes.Add(childNode);
- SetNodeItem(childNode, item);
- MenuHelper.SetSymbol(childNode, symbol, symbolSize);
- return childNode;
- }
-
private readonly Dictionary> TreeNodeSymbols = new Dictionary>();
public void AddNodeRightSymbol(TreeNode node, int symbol)
@@ -1184,6 +1132,8 @@ namespace Sunny.UI
}
}
+ #endregion 扩展函数
+
public delegate void OnNodeRightSymbolClick(object sender, TreeNode node, int index, int symbol);
public event OnNodeRightSymbolClick NodeRightSymbolClick;
diff --git a/SunnyUI/Controls/UINavMenuHelper.cs b/SunnyUI/Controls/UINavMenuHelper.cs
index 9f9abb41..7396b137 100644
--- a/SunnyUI/Controls/UINavMenuHelper.cs
+++ b/SunnyUI/Controls/UINavMenuHelper.cs
@@ -17,9 +17,9 @@
* 创建日期: 2020-01-01
*
* 2020-01-01: V2.2.0 增加文件说明
+ * 2022-04-14: V3.1.3 重构扩展函数
******************************************************************************/
-
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
@@ -28,7 +28,7 @@ using System.Windows.Forms;
namespace Sunny.UI
{
- public class NavMenuHelper
+ internal class NavMenuHelper
{
public NavMenuItem this[TreeNode node]
{
@@ -326,12 +326,12 @@ namespace Sunny.UI
private TabPage CreateTabIfNotExists(int pageIndex)
{
- return CreateTabIfNotExists(new NavMenuItem(pageIndex));
+ return CreateTabIfNotExists(new NavMenuItem("", pageIndex));
}
private TabPage CreateTabIfNotExists(Guid guid)
{
- return CreateTabIfNotExists(new NavMenuItem(guid));
+ return CreateTabIfNotExists(new NavMenuItem("", guid));
}
public bool SelectPage(int pageIndex)
@@ -532,14 +532,10 @@ namespace Sunny.UI
Text = text;
}
- public NavMenuItem(int pageIndex)
- {
- PageIndex = pageIndex;
- }
-
- public NavMenuItem(Guid guid)
+ public NavMenuItem(string text, Guid guid)
{
PageGuid = guid;
+ Text = text;
}
}
}
\ No newline at end of file
diff --git a/SunnyUI/Frames/UIPage.cs b/SunnyUI/Frames/UIPage.cs
index 6e96631f..924966e2 100644
--- a/SunnyUI/Frames/UIPage.cs
+++ b/SunnyUI/Frames/UIPage.cs
@@ -76,6 +76,24 @@ namespace Sunny.UI
titleForeColor = UIStyles.Blue.PageTitleForeColor;
}
+ public UIPage SetPageIndex(int pageIndex)
+ {
+ PageIndex = pageIndex;
+ return this;
+ }
+
+ public UIPage SetPageGuid(Guid pageGuid)
+ {
+ PageGuid = pageGuid;
+ return this;
+ }
+
+ public UIPage SetText(string text)
+ {
+ Text = text;
+ return this;
+ }
+
[DefaultValue(false), Category("SunnyUI"), Description("禁止控件跟随窗体缩放")]
public bool ZoomScaleDisabled { get; set; }