C# winapp创建tabpage窗体的简单示意

来源:互联网 发布:做淘宝客服难不难学 编辑:程序博客网 时间:2024/05/17 02:49

需要建立至少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均用于如上所述的显示一个窗体,否则可能引发索引错误)。

原创粉丝点击