* UIPage:修复OnLoad在加载时重复加载两次的问题,增加Final函数,每次页面切换,退出页面都会执行
This commit is contained in:
parent
16091b91b0
commit
e801c64974
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -14,32 +14,39 @@ namespace Sunny.UI.Demo
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 放在 [窗体Load、重载OnLoad、重载Init] 的内容每次页面切换都会执行。
|
/// 放在 [窗体Load、重载OnLoad、重载Init] 的内容每次页面切换,进入页面都会执行。
|
||||||
/// 这三个选一个用就行了。
|
/// 这三个选一个用就行了。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="sender"></param>
|
/// <param name="sender"></param>
|
||||||
/// <param name="e"></param>
|
/// <param name="e"></param>
|
||||||
private void FButton_Load(object sender, EventArgs e)
|
private void FButton_Load(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
uiSwitch1.Active = uiSwitch4.Active = true;
|
Console.WriteLine("1. FButton_Load");
|
||||||
uiSwitch2.Active = uiSwitch3.Active = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//放在 [窗体Load、重载OnLoad、重载Init] 的内容每次页面切换都会执行。
|
//放在 [窗体Load、重载OnLoad、重载Init] 的内容每次页面切换,进入页面都会执行。
|
||||||
//protected override void OnLoad(EventArgs e)
|
protected override void OnLoad(EventArgs e)
|
||||||
//{
|
{
|
||||||
// base.OnLoad(e);
|
base.OnLoad(e);
|
||||||
// uiSwitch1.Active = uiSwitch4.Active = true;
|
Console.WriteLine("3. FButton_OnLoad");
|
||||||
// uiSwitch2.Active = uiSwitch3.Active = false;
|
}
|
||||||
//}
|
|
||||||
|
|
||||||
//放在 [窗体Load、重载OnLoad、重载Init] 的内容每次页面切换都会执行。
|
//放在 [窗体Load、重载OnLoad、重载Init] 的内容每次页面切换,进入页面都会执行。
|
||||||
//public override void Init()
|
public override void Init()
|
||||||
//{
|
{
|
||||||
// base.Init();
|
base.Init();
|
||||||
// uiSwitch1.Active = uiSwitch4.Active = true;
|
uiSwitch1.Active = uiSwitch4.Active = true;
|
||||||
// uiSwitch2.Active = uiSwitch3.Active = false;
|
uiSwitch2.Active = uiSwitch3.Active = false;
|
||||||
//}
|
|
||||||
|
Console.WriteLine("2. FButton_Init");
|
||||||
|
}
|
||||||
|
|
||||||
|
//放在 [Final] 的内容每次页面切换,退出页面都会执行
|
||||||
|
public override void Final()
|
||||||
|
{
|
||||||
|
base.Final();
|
||||||
|
Console.WriteLine("4. FButton_Final");
|
||||||
|
}
|
||||||
|
|
||||||
private void uiButton10_Click(object sender, EventArgs e)
|
private void uiButton10_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
@ -21,13 +21,13 @@
|
|||||||
* 2020-08-12: V2.2.7 标题垂直居中
|
* 2020-08-12: V2.2.7 标题垂直居中
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
using Sunny.UI.Win32;
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Drawing.Drawing2D;
|
using System.Drawing.Drawing2D;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
using Sunny.UI.Win32;
|
||||||
|
|
||||||
namespace Sunny.UI
|
namespace Sunny.UI
|
||||||
{
|
{
|
||||||
@ -127,7 +127,10 @@ namespace Sunny.UI
|
|||||||
|
|
||||||
public void AddPage(Guid guid, UITabControlMenu page) => Helper.AddPage(guid, page);
|
public void AddPage(Guid guid, UITabControlMenu page) => Helper.AddPage(guid, page);
|
||||||
|
|
||||||
public string Version { get; }
|
public string Version
|
||||||
|
{
|
||||||
|
get;
|
||||||
|
}
|
||||||
|
|
||||||
private Color _fillColor = UIColor.LightBlue;
|
private Color _fillColor = UIColor.LightBlue;
|
||||||
private Color tabBackColor = Color.FromArgb(56, 56, 56);
|
private Color tabBackColor = Color.FromArgb(56, 56, 56);
|
||||||
@ -137,14 +140,20 @@ namespace Sunny.UI
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[DefaultValue(null)]
|
[DefaultValue(null)]
|
||||||
[Description("获取或设置包含有关控件的数据的对象字符串"), Category("SunnyUI")]
|
[Description("获取或设置包含有关控件的数据的对象字符串"), Category("SunnyUI")]
|
||||||
public string TagString { get; set; }
|
public string TagString
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 自定义主题风格
|
/// 自定义主题风格
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[DefaultValue(false)]
|
[DefaultValue(false)]
|
||||||
[Description("获取或设置可以自定义主题风格"), Category("SunnyUI")]
|
[Description("获取或设置可以自定义主题风格"), Category("SunnyUI")]
|
||||||
public bool StyleCustomMode { get; set; }
|
public bool StyleCustomMode
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
|
|
||||||
private HorizontalAlignment textAlignment = HorizontalAlignment.Center;
|
private HorizontalAlignment textAlignment = HorizontalAlignment.Center;
|
||||||
|
|
||||||
@ -555,7 +564,10 @@ namespace Sunny.UI
|
|||||||
|
|
||||||
[DefaultValue(false)]
|
[DefaultValue(false)]
|
||||||
[Description("多页面框架时,包含UIPage,在点击Tab页关闭时关闭UIPage"), Category("SunnyUI")]
|
[Description("多页面框架时,包含UIPage,在点击Tab页关闭时关闭UIPage"), Category("SunnyUI")]
|
||||||
public bool AutoClosePage { get; set; }
|
public bool AutoClosePage
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
|
|
||||||
internal void RemoveTabPage(int index)
|
internal void RemoveTabPage(int index)
|
||||||
{
|
{
|
||||||
@ -608,27 +620,44 @@ namespace Sunny.UI
|
|||||||
protected override void OnSelectedIndexChanged(EventArgs e)
|
protected override void OnSelectedIndexChanged(EventArgs e)
|
||||||
{
|
{
|
||||||
base.OnSelectedIndexChanged(e);
|
base.OnSelectedIndexChanged(e);
|
||||||
Init(SelectedIndex);
|
Init();
|
||||||
if (ShowActiveCloseButton && !ShowCloseButton)
|
if (ShowActiveCloseButton && !ShowCloseButton)
|
||||||
{
|
{
|
||||||
timer.Start();
|
timer.Start();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Init(int index = 0)
|
private int LastIndex = 0;
|
||||||
|
|
||||||
|
public void Init()
|
||||||
{
|
{
|
||||||
if (index < 0 || index >= TabPages.Count)
|
if (SelectedIndex < 0 || SelectedIndex >= TabPages.Count)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SelectedIndex != index)
|
if (SelectedIndex >= 0)
|
||||||
SelectedIndex = index;
|
|
||||||
|
|
||||||
List<UIPage> pages = TabPages[SelectedIndex].GetControls<UIPage>();
|
|
||||||
foreach (var page in pages)
|
|
||||||
{
|
{
|
||||||
page.ReLoad();
|
List<UIPage> pages;
|
||||||
|
if (LastIndex != SelectedIndex)
|
||||||
|
{
|
||||||
|
if (LastIndex >= 0 && TabPages.Count > 0)
|
||||||
|
{
|
||||||
|
pages = TabPages[LastIndex].GetControls<UIPage>();
|
||||||
|
foreach (var page in pages)
|
||||||
|
{
|
||||||
|
page.Final();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
LastIndex = SelectedIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
pages = TabPages[SelectedIndex].GetControls<UIPage>();
|
||||||
|
foreach (var page in pages)
|
||||||
|
{
|
||||||
|
page.ReLoad();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
List<UITabControlMenu> leftTabControls = TabPages[SelectedIndex].GetControls<UITabControlMenu>();
|
List<UITabControlMenu> leftTabControls = TabPages[SelectedIndex].GetControls<UITabControlMenu>();
|
||||||
@ -901,11 +930,20 @@ namespace Sunny.UI
|
|||||||
MouseInUpButton = mouseInUpButton;
|
MouseInUpButton = mouseInUpButton;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool MouseOver { get; }
|
public bool MouseOver
|
||||||
|
{
|
||||||
|
get;
|
||||||
|
}
|
||||||
|
|
||||||
public bool MousePress { get; }
|
public bool MousePress
|
||||||
|
{
|
||||||
|
get;
|
||||||
|
}
|
||||||
|
|
||||||
public bool MouseInUpButton { get; }
|
public bool MouseInUpButton
|
||||||
|
{
|
||||||
|
get;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -217,6 +217,7 @@ namespace Sunny.UI
|
|||||||
}
|
}
|
||||||
|
|
||||||
public event EventHandler Initialize;
|
public event EventHandler Initialize;
|
||||||
|
public event EventHandler Finalize;
|
||||||
|
|
||||||
protected override void OnControlAdded(ControlEventArgs e)
|
protected override void OnControlAdded(ControlEventArgs e)
|
||||||
{
|
{
|
||||||
@ -260,7 +261,7 @@ namespace Sunny.UI
|
|||||||
|
|
||||||
public virtual void Init()
|
public virtual void Init()
|
||||||
{
|
{
|
||||||
Initialize?.Invoke(this, null);
|
Initialize?.Invoke(this, new EventArgs());
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnLoad(EventArgs e)
|
protected override void OnLoad(EventArgs e)
|
||||||
@ -292,6 +293,7 @@ namespace Sunny.UI
|
|||||||
|
|
||||||
public virtual void Final()
|
public virtual void Final()
|
||||||
{
|
{
|
||||||
|
Finalize?.Invoke(this, new EventArgs());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetStyle(UIStyle style)
|
public void SetStyle(UIStyle style)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user