* UITabControl增加Page索引为空的Bug

This commit is contained in:
Sunny 2020-05-12 22:51:32 +08:00
parent fc3ccb993f
commit 8efffc058d
8 changed files with 32 additions and 15 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,5 +1,4 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Windows.Forms;
namespace Sunny.UI.Demo namespace Sunny.UI.Demo
{ {

View File

@ -385,12 +385,6 @@
<ItemGroup> <ItemGroup>
<None Include="Resources\SunnyUISmall.png" /> <None Include="Resources\SunnyUISmall.png" />
<None Include="Resources\SunnyUI.png" /> <None Include="Resources\SunnyUI.png" />
<None Include="Resources\off_b.png" />
<None Include="Resources\off_g.png" />
<None Include="Resources\off_y.png" />
<None Include="Resources\on_b.png" />
<None Include="Resources\on_g.png" />
<None Include="Resources\on_y.png" />
<None Include="Resources\dashboard0.png" /> <None Include="Resources\dashboard0.png" />
<None Include="Resources\relationship.png" /> <None Include="Resources\relationship.png" />
<None Include="Resources\relationship0.png" /> <None Include="Resources\relationship0.png" />

View File

@ -283,7 +283,7 @@ namespace Sunny.UI
base.OnControlAdded(e); base.OnControlAdded(e);
if (e.Control is TabPage) if (e.Control is TabPage)
{ {
e.Control.BackColor = FillColor; //e.Control.BackColor = FillColor;
e.Control.Padding = new Padding(0); e.Control.Padding = new Padding(0);
} }
} }

View File

@ -249,7 +249,7 @@ namespace Sunny.UI
base.OnControlAdded(e); base.OnControlAdded(e);
if (e.Control is TabPage) if (e.Control is TabPage)
{ {
e.Control.BackColor = FillColor; //e.Control.BackColor = FillColor;
e.Control.Padding = new Padding(0); e.Control.Padding = new Padding(0);
} }
} }
@ -333,13 +333,25 @@ namespace Sunny.UI
public static class UITabControlHelper public static class UITabControlHelper
{ {
public static void AddPage(this TabControl tabControl, UIPage page) public static UIPage AddPage(this TabControl tabControl, int pageIndex, UIPage page)
{ {
if (page.PageIndex < 0) return; page.PageIndex = pageIndex;
return tabControl.AddPage(page);
}
public static UIPage AddPage(this TabControl tabControl, UIPage page)
{
if (page.PageIndex < 0)
{
page.PageIndex = RandomEx.RandomNumber(8).ToInt();
}
TabPage tagPage = tabControl.CreateTabIfNotExists(page.PageIndex); TabPage tagPage = tabControl.CreateTabIfNotExists(page.PageIndex);
tagPage.Controls.Add(page); tagPage.Controls.Add(page);
tagPage.Text = page.Text; tagPage.Text = page.Text;
page.Show(); page.Show();
return page;
} }
public static void AddPages(this TabControl tabControl, params UIPage[] pages) public static void AddPages(this TabControl tabControl, params UIPage[] pages)
@ -354,6 +366,7 @@ namespace Sunny.UI
{ {
tabControl.CreateTabIfNotExists(index); tabControl.CreateTabIfNotExists(index);
tabControl.TabPages[index].Controls.Add(page); tabControl.TabPages[index].Controls.Add(page);
page.Show();
page.Dock = DockStyle.Fill; page.Dock = DockStyle.Fill;
} }
@ -361,6 +374,7 @@ namespace Sunny.UI
{ {
tabControl.CreateTabIfNotExists(index); tabControl.CreateTabIfNotExists(index);
tabControl.TabPages[index].Controls.Add(page); tabControl.TabPages[index].Controls.Add(page);
page.Show();
page.Dock = DockStyle.Fill; page.Dock = DockStyle.Fill;
} }
@ -369,12 +383,22 @@ namespace Sunny.UI
if (index < 0) return null; if (index < 0) return null;
for (int i = 0; i < tabControl.TabPages.Count; i++) for (int i = 0; i < tabControl.TabPages.Count; i++)
{ {
if (tabControl.TabPages[i].Tag == null) TabPage existPage = tabControl.TabPages[i];
if (existPage.Tag == null)
{ {
continue; if (existPage.Controls.Count > 0)
{
continue;
}
else
{
existPage.Tag = index;
return existPage;
}
} }
if (tabControl.TabPages[i].Tag.ToString() == i.ToString()) if (tabControl.TabPages[i].Tag.ToString() == index.ToString())
{ {
return tabControl.TabPages[i]; return tabControl.TabPages[i];
} }
@ -383,7 +407,7 @@ namespace Sunny.UI
TabPage page = new TabPage(); TabPage page = new TabPage();
page.SuspendLayout(); page.SuspendLayout();
page.Tag = index; page.Tag = index;
page.Text = "TabPage" + tabControl.TabPages.Count; page.Text = "tabPage" + tabControl.TabPages.Count;
tabControl.Controls.Add(page); tabControl.Controls.Add(page);
page.ResumeLayout(); page.ResumeLayout();
return page; return page;