diff --git a/Bin/SunnyUI.Demo.exe b/Bin/SunnyUI.Demo.exe index ce0b4e17..6e3838ed 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 2f2c5e99..e13da662 100644 Binary files a/Bin/SunnyUI.dll and b/Bin/SunnyUI.dll differ diff --git a/SunnyUI.Demo/Controls/FRadioButton.cs b/SunnyUI.Demo/Controls/FRadioButton.cs index 93545c9a..cbb0de1a 100644 --- a/SunnyUI.Demo/Controls/FRadioButton.cs +++ b/SunnyUI.Demo/Controls/FRadioButton.cs @@ -10,6 +10,12 @@ namespace Sunny.UI.Demo uiRadioButtonGroup1.SelectedIndex = 2; } + public override void Init() + { + base.Init(); + uiRadioButtonGroup1.SelectedIndex = 1; + } + private void uiRadioButtonGroup1_ValueChanged(object sender, int index, string text) { Console.WriteLine("SelectedIndex: " + index + ", SelectedText: " + text); diff --git a/SunnyUI/Controls/UINavMenu.cs b/SunnyUI/Controls/UINavMenu.cs index c7db8489..8601594c 100644 --- a/SunnyUI/Controls/UINavMenu.cs +++ b/SunnyUI/Controls/UINavMenu.cs @@ -651,6 +651,11 @@ namespace Sunny.UI MenuItemClick?.Invoke(SelectedNode, MenuHelper[SelectedNode], MenuHelper.GetPageIndex(SelectedNode)); } + public TreeNode GetTreeNode(int pageIndex) + { + return MenuHelper.GetTreeNode(pageIndex); + } + protected override void OnMouseWheel(MouseEventArgs e) { base.OnMouseWheel(e); diff --git a/SunnyUI/Controls/UINavMenuHelper.cs b/SunnyUI/Controls/UINavMenuHelper.cs index 9c8f4f8c..e42c81ca 100644 --- a/SunnyUI/Controls/UINavMenuHelper.cs +++ b/SunnyUI/Controls/UINavMenuHelper.cs @@ -33,11 +33,7 @@ namespace Sunny.UI get { if (node == null) return null; - - if (Items.ContainsKey(node)) - return Items[node]; - else - return null; + return Items.ContainsKey(node) ? Items[node] : null; } } @@ -141,6 +137,19 @@ namespace Sunny.UI node.SelectedImageIndex = item.SelectedImageIndex; node.Tag = item; } + + public TreeNode GetTreeNode(int pageIndex) + { + foreach (var pair in Items) + { + if (pair.Value.PageIndex == pageIndex) + { + return pair.Key; + } + } + + return null; + } } public class UITabControlHelper diff --git a/SunnyUI/Frames/UIAsideMainFrame.cs b/SunnyUI/Frames/UIAsideMainFrame.cs index a114e176..1edaf299 100644 --- a/SunnyUI/Frames/UIAsideMainFrame.cs +++ b/SunnyUI/Frames/UIAsideMainFrame.cs @@ -19,6 +19,8 @@ * 2020-05-05: V2.2.5 页面框架(Aside-Main) ******************************************************************************/ +using System.Windows.Forms; + namespace Sunny.UI { public partial class UIAsideMainFrame : UIMainFrame @@ -32,5 +34,12 @@ namespace Sunny.UI MainTabControl.BringToFront(); Aside.TabControl = MainTabControl; } + + public override void SelectPage(int pageIndex) + { + base.SelectPage(pageIndex); + TreeNode node = Aside.GetTreeNode(pageIndex); + if (node != null) Aside.SelectedNode = node; + } } } \ No newline at end of file diff --git a/SunnyUI/Frames/UIHeaderAsideMainFrame.cs b/SunnyUI/Frames/UIHeaderAsideMainFrame.cs index 72ec190b..1bafd591 100644 --- a/SunnyUI/Frames/UIHeaderAsideMainFrame.cs +++ b/SunnyUI/Frames/UIHeaderAsideMainFrame.cs @@ -19,6 +19,8 @@ * 2020-05-05: V2.2.5 页面框架(Header-Aside-Main) ******************************************************************************/ +using System.Windows.Forms; + namespace Sunny.UI { public partial class UIHeaderAsideMainFrame : UIHeaderMainFrame @@ -34,5 +36,12 @@ namespace Sunny.UI MainTabControl.BringToFront(); Aside.TabControl = MainTabControl; } + + public override void SelectPage(int pageIndex) + { + base.SelectPage(pageIndex); + TreeNode node = Aside.GetTreeNode(pageIndex); + if (node != null) Aside.SelectedNode = node; + } } } \ No newline at end of file diff --git a/SunnyUI/Frames/UIMainFrame.cs b/SunnyUI/Frames/UIMainFrame.cs index d3111906..f21f5d06 100644 --- a/SunnyUI/Frames/UIMainFrame.cs +++ b/SunnyUI/Frames/UIMainFrame.cs @@ -65,7 +65,7 @@ namespace Sunny.UI return page; } - public void SelectPage(int pageIndex) + public virtual void SelectPage(int pageIndex) { MainContainer.SelectPage(pageIndex); }