diff --git a/Bin/net40/SunnyUI.Demo.exe b/Bin/net40/SunnyUI.Demo.exe index 70c59dcc..2bea95d7 100644 Binary files a/Bin/net40/SunnyUI.Demo.exe and b/Bin/net40/SunnyUI.Demo.exe differ diff --git a/Bin/net40/SunnyUI.dll b/Bin/net40/SunnyUI.dll index 8dde5d65..b0ca4fa5 100644 Binary files a/Bin/net40/SunnyUI.dll and b/Bin/net40/SunnyUI.dll differ diff --git a/SunnyUI.Demo/Controls/FButton.cs b/SunnyUI.Demo/Controls/FButton.cs index 75a8bc77..dc7f8cc4 100644 --- a/SunnyUI.Demo/Controls/FButton.cs +++ b/SunnyUI.Demo/Controls/FButton.cs @@ -22,6 +22,7 @@ namespace Sunny.UI.Demo private void FButton_Load(object sender, EventArgs e) { Console.WriteLine("1. FButton_Load"); + } //放在 [窗体Load、重载OnLoad、重载Init] 的内容每次页面切换,进入页面都会执行。 diff --git a/SunnyUI/Controls/UINavMenu.cs b/SunnyUI/Controls/UINavMenu.cs index 1af8b93f..5b9851ee 100644 --- a/SunnyUI/Controls/UINavMenu.cs +++ b/SunnyUI/Controls/UINavMenu.cs @@ -27,7 +27,6 @@ ******************************************************************************/ using System; -using System.Collections.Concurrent; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; @@ -889,27 +888,21 @@ namespace Sunny.UI public void SelectPage(int pageIndex) { - AllNodes.Clear(); - GetAllNodes(Nodes); - if (AllNodes.ContainsKey(pageIndex)) + var node = MenuHelper.GetTreeNode(pageIndex); + if (node != null) { - SelectedNode = AllNodes[pageIndex]; + SelectedNode = node; ShowSelectedNode(); } } - private readonly ConcurrentDictionary AllNodes = new ConcurrentDictionary(); - - private void GetAllNodes(TreeNodeCollection nodes) + public void SelectPage(Guid pageGuid) { - foreach (TreeNode node in nodes) + var node = MenuHelper.GetTreeNode(pageGuid); + if (node != null) { - if (MenuHelper.GetPageIndex(node) >= 0) - { - AllNodes.TryAddOrUpdate(MenuHelper.GetPageIndex(node), node); - } - - GetAllNodes(node.Nodes); + SelectedNode = node; + ShowSelectedNode(); } } diff --git a/SunnyUI/Controls/UINavMenuHelper.cs b/SunnyUI/Controls/UINavMenuHelper.cs index 1b22699e..df9b3091 100644 --- a/SunnyUI/Controls/UINavMenuHelper.cs +++ b/SunnyUI/Controls/UINavMenuHelper.cs @@ -164,6 +164,19 @@ namespace Sunny.UI return null; } + + public TreeNode GetTreeNode(Guid guid) + { + foreach (var pair in Items) + { + if (pair.Value.PageGuid == guid) + { + return pair.Key; + } + } + + return null; + } } public class UITabControlHelper