C# winapp创建tabpage窗体的简单示意
2010-03-22 15:13
561 查看
需要建立至少3个窗体:FormMain,FormBase,FormChild
它们的关系为:
FormMain是程序的MDI主窗体,添加tabcontrol作为实现不同功能子窗体的容器;
FormChild是继承于FormBase的子窗体,计划显示在主窗体的tabcontrol新建tabpage中;
FormBase类是FormChild类的基类,包含控制所有继承窗体显示行为的代码。
在FormMain中,添加名为TabFlat的tabcontrol控件,并编写显示子窗体的方法(或相同功能的代码)如下:
private void ShowWindow(BaseForm newForm)
{
newForm.MdiParent = this;
newForm.ShowForm();
}
在FormBase中,编写控制子窗体显示行为的方法(或相同功能的代码)如下:
public virtual void ShowForm()
{
Form Father = this.MdiParent;
TabPage Container = new TabPage(this.Text);
this.Parent = Container;
this.Dock = DockStyle.Fill;
((TabControl)Father.Controls["TabFlat"]).TabPages.Add(Container);
this.Show();
}
适当修改FormChild的属性(如title等),在FormMain中添加事件调用ShowWindow方法,即可以tabpage形式在主窗体中显示子窗体。
在主窗体FormMain适当位置添加名为btnClose的按钮,为其单击响应函数添加如下代码:
foreach (TabPage CurrentPage in TabFlat.TabPages)
{
if(CurrentPage.Focus()==true)
{
CurrentPage.Controls[0].Dispose();
TabFlat.TabPages.Remove(CurrentPage);
return;
}
}
如此当单击按钮时,当前显示的Tabpage将关闭(注意:这样的代码要求TabFlat中的所有tabpage均用于如上所述的显示一个窗体,否则可能引发索引错误)。
它们的关系为:
FormMain是程序的MDI主窗体,添加tabcontrol作为实现不同功能子窗体的容器;
FormChild是继承于FormBase的子窗体,计划显示在主窗体的tabcontrol新建tabpage中;
FormBase类是FormChild类的基类,包含控制所有继承窗体显示行为的代码。
在FormMain中,添加名为TabFlat的tabcontrol控件,并编写显示子窗体的方法(或相同功能的代码)如下:
private void ShowWindow(BaseForm newForm)
{
newForm.MdiParent = this;
newForm.ShowForm();
}
在FormBase中,编写控制子窗体显示行为的方法(或相同功能的代码)如下:
public virtual void ShowForm()
{
Form Father = this.MdiParent;
TabPage Container = new TabPage(this.Text);
this.Parent = Container;
this.Dock = DockStyle.Fill;
((TabControl)Father.Controls["TabFlat"]).TabPages.Add(Container);
this.Show();
}
适当修改FormChild的属性(如title等),在FormMain中添加事件调用ShowWindow方法,即可以tabpage形式在主窗体中显示子窗体。
在主窗体FormMain适当位置添加名为btnClose的按钮,为其单击响应函数添加如下代码:
foreach (TabPage CurrentPage in TabFlat.TabPages)
{
if(CurrentPage.Focus()==true)
{
CurrentPage.Controls[0].Dispose();
TabFlat.TabPages.Remove(CurrentPage);
return;
}
}
如此当单击按钮时,当前显示的Tabpage将关闭(注意:这样的代码要求TabFlat中的所有tabpage均用于如上所述的显示一个窗体,否则可能引发索引错误)。
相关文章推荐
- win 32 APP 项目简单创建窗体
- C#将子窗体嵌入到tabControl控件的tabpage中
- C# winform TabPage两个存在关联关系的窗体数据不刷新问题
- C#演练—Windows应用程序演练—创建简单的Windows窗体
- C# winfrom判断文件是否存在,不存在则创建,否则读取值显示到窗体
- 简单创建ASPX(C#)工程
- 如何:创建 C# Windows 窗体应用程序
- C#基础:用记事本编写简单WinForm窗体程序
- [转载内容]C# win程序中主窗体菜单的权限控制
- 利用C#轻松创建不规则窗体
- 简单干净的C#方法设计案例:SFCUI.AjaxLoadPage()之一
- 简单干净的C#方法设计案例:SFCUI.AjaxLoadPage()之二
- 如何使用Core Text创建一个简单的杂志图书App
- [VB.NET,C#.NET] - TabControl的Alignment为Left或Right显示TabPage.Text问题
- 14.Delphi简单数据库应用的创建及MASTAPP介绍
- 【C#】简单窗体程序,判断是否闰年,禁止窗体调整大小,关闭窗体前的判断
- C# 开发Windows应用窗体简单一例
- TabPageIndicator的简单使用
- c# set tab page focus
- c# winFrom 使窗体显示SplitContainer或Panel中