* UIForm: 重构页面添加、选择、删除事件

This commit is contained in:
Sunny 2022-08-30 13:16:31 +08:00
parent ec7d24e8e0
commit bb28d99411
4 changed files with 17 additions and 15 deletions

View File

@ -261,9 +261,12 @@ namespace Sunny.UI
public void AddPage(UIPage page)
{
Helper.AddPage(page);
Frame?.DealPageAdded(page);
PageAdded?.Invoke(this, new UIPageEventArgs(page));
}
internal event OnUIPageChanged PageAdded;
internal event OnUIPageChanged PageRemoved;
public void AddPage(int pageIndex, UITabControl page) => Helper.AddPage(pageIndex, page);
public void AddPage(int pageIndex, UITabControlMenu page) => Helper.AddPage(pageIndex, page);
@ -850,7 +853,7 @@ namespace Sunny.UI
{
if (AutoClosePage)
{
Frame?.DealPageRemoved(pages[i]);
PageRemoved?.Invoke(this, new UIPageEventArgs(pages[i]));
try
{

View File

@ -2115,6 +2115,9 @@ namespace Sunny.UI
{
mainTabControl = value;
mainTabControl.Frame = this;
mainTabControl.PageAdded += DealPageAdded;
mainTabControl.PageRemoved += DealPageRemoved;
}
}
@ -2141,6 +2144,7 @@ namespace Sunny.UI
page.Frame = this;
page.OnFrameDealPageParams += Page_OnFrameDealPageParams;
page.PageSelected += DealPageSelected;
MainTabControl?.AddPage(page);
return page;
}
@ -2246,21 +2250,21 @@ namespace Sunny.UI
public event OnUIPageChanged PageAdded;
public void DealPageAdded(UIPage page)
internal void DealPageAdded(object sender, UIPageEventArgs e)
{
PageAdded?.Invoke(this, new UIPageEventArgs(page));
PageAdded?.Invoke(this, e);
}
public event OnUIPageChanged PageSelected;
public void DealPageSelected(UIPage page)
internal void DealPageSelected(object sender, UIPageEventArgs e)
{
PageSelected?.Invoke(this, new UIPageEventArgs(page));
PageSelected?.Invoke(this, e);
}
public event OnUIPageChanged PageRemoved;
public void DealPageRemoved(UIPage page)
internal void DealPageRemoved(object sender, UIPageEventArgs e)
{
PageRemoved?.Invoke(this, new UIPageEventArgs(page));
PageRemoved?.Invoke(this, e);
}
#endregion IFrame实现

View File

@ -59,12 +59,6 @@ namespace Sunny.UI
T GetPage<T>() where T : UIPage;
List<T> GetPages<T>() where T : UIPage;
void DealPageAdded(UIPage page);
void DealPageSelected(UIPage page);
void DealPageRemoved(UIPage page);
}
public class UIPageParamsArgs : EventArgs

View File

@ -455,10 +455,11 @@ namespace Sunny.UI
get; set;
}
internal event OnUIPageChanged PageSelected;
public virtual void Init()
{
Initialize?.Invoke(this, new EventArgs());
Frame?.DealPageSelected(this);
PageSelected?.Invoke(this, new UIPageEventArgs(this));
}
protected override void OnLoad(EventArgs e)