* UIForm: 修复PageSelected可能未显示选中页面的问题
This commit is contained in:
parent
0c066ff6dc
commit
d448cc9cc0
@ -44,6 +44,7 @@
|
||||
* 2022-09-11: V3.2.3 修复继承页面可响应WM_HOTKEY消息
|
||||
* 2022-11-30: V3.3.0 增加RemoveAllPages函数
|
||||
* 2023-01-25: V3.3.1 最大化后,关闭按钮扩大至原按钮右上角全部区域
|
||||
* 2023-02-24: V3.3.2 修复PageSelected可能未显示选中页面的问题
|
||||
******************************************************************************/
|
||||
|
||||
using System;
|
||||
@ -2161,9 +2162,30 @@ namespace Sunny.UI
|
||||
|
||||
mainTabControl.PageAdded += DealPageAdded;
|
||||
mainTabControl.PageRemoved += DealPageRemoved;
|
||||
mainTabControl.Selecting += MainTabControl_Selecting;
|
||||
}
|
||||
}
|
||||
|
||||
private void MainTabControl_Selecting(object sender, TabControlCancelEventArgs e)
|
||||
{
|
||||
List<UIPage> pages = e.TabPage.GetControls<UIPage>();
|
||||
if (pages.Count == 1)
|
||||
{
|
||||
SelectedPage = pages[0];
|
||||
PageSelected?.Invoke(this, new UIPageEventArgs(SelectedPage));
|
||||
}
|
||||
else
|
||||
{
|
||||
SelectedPage = null;
|
||||
PageSelected?.Invoke(this, new UIPageEventArgs(SelectedPage));
|
||||
}
|
||||
}
|
||||
|
||||
[Browsable(false)]
|
||||
public UIPage SelectedPage { get; private set; }
|
||||
|
||||
public event OnUIPageChanged PageSelected;
|
||||
|
||||
public UIPage AddPage(UIPage page, int pageIndex)
|
||||
{
|
||||
page.PageIndex = pageIndex;
|
||||
@ -2187,7 +2209,6 @@ namespace Sunny.UI
|
||||
|
||||
page.Frame = this;
|
||||
page.OnFrameDealPageParams += Page_OnFrameDealPageParams;
|
||||
page.PageSelected += DealPageSelected;
|
||||
MainTabControl?.AddPage(page);
|
||||
return page;
|
||||
}
|
||||
@ -2300,12 +2321,6 @@ namespace Sunny.UI
|
||||
PageAdded?.Invoke(this, e);
|
||||
}
|
||||
|
||||
public event OnUIPageChanged PageSelected;
|
||||
internal void DealPageSelected(object sender, UIPageEventArgs e)
|
||||
{
|
||||
PageSelected?.Invoke(this, e);
|
||||
}
|
||||
|
||||
public event OnUIPageChanged PageRemoved;
|
||||
internal void DealPageRemoved(object sender, UIPageEventArgs e)
|
||||
{
|
||||
|
@ -59,6 +59,8 @@ namespace Sunny.UI
|
||||
T GetPage<T>() where T : UIPage;
|
||||
|
||||
List<T> GetPages<T>() where T : UIPage;
|
||||
|
||||
UIPage SelectedPage { get; }
|
||||
}
|
||||
|
||||
public class UIPageParamsArgs : EventArgs
|
||||
|
@ -474,11 +474,9 @@ namespace Sunny.UI
|
||||
get; set;
|
||||
}
|
||||
|
||||
internal event OnUIPageChanged PageSelected;
|
||||
public virtual void Init()
|
||||
{
|
||||
Initialize?.Invoke(this, new EventArgs());
|
||||
PageSelected?.Invoke(this, new UIPageEventArgs(this));
|
||||
}
|
||||
|
||||
protected override void OnLoad(EventArgs e)
|
||||
|
Loading…
x
Reference in New Issue
Block a user