• 20141112 WinForm子窗口标签页


    (一)标签页

    先看看效果:

    代码:

     1     public partial class 标签页 : Form
     2     {
     3         string s = "";
     4         public 标签页()
     5         {
     6             InitializeComponent();
     7         }
     8         /// <summary>
     9         /// 判断选项卡中是否有本选项卡
    10         /// </summary>
    11         /// <param name="s">选项卡名</param>
    12         /// <returns>布尔型</returns>
    13 
    14         private bool HasTablePages(string s)
    15         {
    16             for (int i = 0; i < tabControl1.TabPages.Count; i++)
    17             {
    18                 if (tabControl1.TabPages[i].Text == s)
    19                 {
    20                     tabControl1.SelectedIndex = i;//如果选项卡中有本选项卡,则把本选项卡设为焦点
    21                     return false;
    22                 }
    23             }
    24             return true;
    25         }
    26         /// <summary>
    27         /// 点击菜单时,创建本选项卡,同时将自定义的选项卡控件添加进去
    28         /// </summary>
    29         /// <param name="s">选项卡名</param>
    30         /// <param name="uc">自定义的控件</param>
    31         private void MenuAdd(string s,UserControl uc)
    32         {
    33             if (HasTablePages(s))
    34             {
    35                 TabPage page = new TabPage();
    36                 page.Text = s;
    37 
    38                 page.Controls.Clear();
    39                 page.Controls.Add(uc);
    40                 uc.Dock = DockStyle.Fill;
    41 
    42                 tabControl1.TabPages.Add(page);
    43                 tabControl1.SelectedTab = page;
    44             }
    45         }
    46         private void 会员管理ToolStripMenuItem_Click(object sender, EventArgs e)
    47         {
    48             s = "会员管理";
    49             UC_HuiYuan uc = new UC_HuiYuan();
    50             MenuAdd(s,uc);
    51         }
    52 
    53         private void 数据管理ToolStripMenuItem_Click(object sender, EventArgs e)
    54         {
    55             s = "数据管理";
    56             UC_ShuJu sj = new UC_ShuJu();
    57             MenuAdd(s,sj);
    58         }
    59 
    60         private void 客房管理ToolStripMenuItem_Click(object sender, EventArgs e)
    61         {
    62             s = "客房管理";
    63             UC_KeFang kf = new UC_KeFang();
    64             MenuAdd(s,kf);
    65         }
    66         /// <summary>
    67         /// 双击选项卡名时,关闭本选项卡
    68         /// </summary>
    69         /// <param name="sender"></param>
    70         /// <param name="e"></param>
    71         private void tabControl1_DoubleClick(object sender, EventArgs e)
    72         {
    73             tabControl1.TabPages.RemoveAt(tabControl1.SelectedIndex);
    74         }
    75     }

    (二)子窗体

     先看看效果:

    代码:

     1     public partial class Form1 : Form
     2     {
     3         public Form1()
     4         {
     5             InitializeComponent();
     6         }
     7         /// <summary>
     8         /// 关闭所有窗口
     9         /// </summary>
    10         /// <param name="sender"></param>
    11         /// <param name="e"></param>
    12         private void 关闭所有窗口ToolStripMenuItem_Click(object sender, EventArgs e)
    13         {
    14             while (this.MdiChildren.Length > 0)
    15             {
    16                 MdiChildren[0].Close();
    17             }
    18         }
    19         /// <summary>
    20         /// 新建Form2
    21         /// </summary>
    22         /// <param name="sender"></param>
    23         /// <param name="e"></param>
    24         private void ToolStripMenuItem_Click(object sender, EventArgs e)
    25         {
    26             bool b = true;//用来判断子窗口中是否存在Form2
    27             for (int i = 0; i < this.MdiChildren.Length; i++)
    28             {
    29                 if (this.MdiChildren[i].Name == "Form2")
    30                 {
    31                     b = false;
    32                 }
    33             }
    34             //没有子窗口 或者 子窗口中没有Form2 时
    35             if (this.MdiChildren.Length == 0 || b)
    36             {
    37                 Form2 fm = new Form2();
    38                 fm.MdiParent = this;
    39                 fm.Show();
    40             }
    41         }
    42         /// <summary>
    43         /// 新建Form3
    44         /// </summary>
    45         /// <param name="sender"></param>
    46         /// <param name="e"></param>
    47         private void toolStripMenuItem2_Click(object sender, EventArgs e)
    48         {
    49             bool b = true;
    50             for (int i = 0; i < this.MdiChildren.Length; i++)
    51             {
    52                 if (this.MdiChildren[i].Name == "Form3")
    53                 {
    54                     b = false;
    55                 }
    56             }
    57             if (this.MdiChildren.Length == 0||b)
    58             {
    59                 Form3 fm = new Form3();
    60                 fm.MdiParent = this;
    61                 fm.Show();
    62             }
    63         }
    64     }

    PS:

    1.父窗体:IsMdiContainer=true
    2.子窗体:建一个窗体,设计好。在父窗体“新建子窗体”界面中,把子窗体new出来。把新new出来的子窗体的MdiParent属性设置为父窗体对象。

  • 相关阅读:
    【VC++积累】之三、操作注册表
    【网络编程】之四、socket网络编程例解
    【网络编程】之五、异步模型
    线性表5 数据结构和算法10
    单链表的删除
    单链表的插入
    单链表的插入
    单链表的插入
    线性表5 数据结构和算法10
    单链表的插入
  • 原文地址:https://www.cnblogs.com/zsmj001/p/4095851.html
Copyright © 2020-2023  润新知