• tabcontrol动态生成选项卡,并且在选项卡中添加窗体


    http://blog.csdn.net/zx13525079024/article/details/6084733

    今天在论坛上看到有人问到,如果在点击TRVEVIEW时动态生成tabcontrol的选项卡,并在选项卡中添加窗体,于是写了一个DEMO,供大家参考

     demo下载:http://download.csdn.net/source/2920757

    1. public partial class Form5 : Form  
    2.    {  
    3.        public Form5()  
    4.        {  
    5.            InitializeComponent();  
    6.        }  
    7.   
    8.        private void Form5_Load(object sender, EventArgs e)  
    9.        {  
    10.            TreeNode root = new TreeNode("电话缴费");  
    11.            root.Name = "root";  
    12.            treeView1.Nodes.Add(root);  
    13.   
    14.            TreeNode tnMobile = new TreeNode("中国移动");  
    15.            tnMobile.Name = "mobile";  
    16.            root.Nodes.Add(tnMobile);  
    17.   
    18.            TreeNode tnUnion = new TreeNode("中国联通");  
    19.            tnUnion.Name = "union";  
    20.            root.Nodes.Add(tnUnion);  
    21.            root.Expand();  
    22.   
    23.             
    24.   
    25.        }  
    26.   
    27.         
    28.   
    29.        private TabPage tbMobile = null;  
    30.        private TabPage tbUnion = null;  
    31.        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)  
    32.        {  
    33.              
    34.            if (treeView1.SelectedNode.Name=="mobile")  
    35.            {  
    36.                 
    37.                if (ErgodicModiForm("tbmobile", tabControl1))  
    38.                {  
    39.                     tbMobile = new TabPage("中国移动");  
    40.   
    41.                    tbMobile.Name = "tbmobile";  
    42.                    tabControl1.Controls.Add(tbMobile);  
    43.   
    44.                    Form6 form = new Form6();  
    45.                    form.TopLevel = false;  
    46.                    form.BackColor = Color.White;  
    47.                    form.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;  
    48.   
    49.                    form.FormBorderStyle = FormBorderStyle.None;  
    50.                    form.Show();  
    51.                    tbMobile.Controls.Add(form);  
    52.   
    53.   
    54.                }  
    55.   
    56.   
    57.                tabControl1.SelectedTab = tbMobile;  
    58.            }  
    59.            else if (treeView1.SelectedNode.Name=="union")  
    60.            {  
    61.   
    62.                if (ErgodicModiForm("tbunion", tabControl1))  
    63.                {  
    64.                    tbUnion = new TabPage("中国联通");  
    65.                    tbUnion.Name = "tbunion";  
    66.                    tabControl1.Controls.Add(tbUnion);  
    67.   
    68.                    Form2 form = new Form2();  
    69.                    form.TopLevel = false;  
    70.                    form.BackColor = Color.White;  
    71.                    form.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;  
    72.   
    73.                    form.FormBorderStyle = FormBorderStyle.None;  
    74.                    form.Show();  
    75.                    tbUnion.Controls.Add(form);  
    76.   
    77.   
    78.                      
    79.                }  
    80.                tabControl1.SelectedTab = tbUnion;  
    81.            }  
    82.        }  
    83.   
    84.        /// </summary>  
    85.        /// <param name="MainTabControlKey">选项卡的键值</param>  
    86.        /// <param name="objTabControl">要添加到的TabControl对象</param>  
    87.        /// <returns></returns>  
    88.        private Boolean ErgodicModiForm(string MainTabControlKey, TabControl objTabControl)  
    89.        {  
    90.            //遍历选项卡判断是否存在该子窗体  
    91.            foreach (Control con in objTabControl.Controls)  
    92.            {  
    93.                TabPage tab = (TabPage)con;  
    94.                if (tab.Name == MainTabControlKey)  
    95.                {  
    96.                    return false;//存在  
    97.                }  
    98.            }  
    99.            return true;//不存在  
    100.        }  
    101.    }  

     

  • 相关阅读:
    vscode的插件收集
    关于vue移动端的适配
    Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null objec
    android studio 使用 aidl(三)权限验证
    Android权限级别(protectionLevel)
    android studio 使用 aidl(二)异步回调
    android studio 使用 aidl(一)基础用法
    如何获取Android唯一标识(唯一序列号)
    android studio 生成aar和引用aar
    android studio 编译NDK android studio 生成.so文件
  • 原文地址:https://www.cnblogs.com/Echo529/p/6382461.html
Copyright © 2020-2023  润新知