看下效果吧
<ignore_js_op> 
下面是一个公共的添加方法
看代码

[C#] 纯文本查看 复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/// <summary>
        /// 添加一个选项卡
        /// </summary>
        /// <param name="MainTabControlKey">选项卡的键值</param>
        /// <param name="MainTabControlName">选项卡要显示的名称</param>
        /// <param name="objTabControl">要添加到的TabControl对象</param>
        /// <param name="objfrm">要被添加到选项卡的用户控件对象</param>
        private void addTabControl(string MainTabControlKey, string MainTabControlName, TabControl objTabControl, UserControl objfrm)
        {
            try
            {
                if (ErgodicModiForm(MainTabControlKey, MainTabControl))
                {
                    //声明一个选项卡对象
                    TabPage tabPage = new TabPage();
                    //选项卡的名称
                    tabPage.Name = MainTabControlKey;
                    //选项卡的文本
                    tabPage.Text = MainTabControlName;
                    //向选项卡集合添加新选项卡
                    MainTabControl.Controls.Add(tabPage);
                    //子窗体显示
                    objfrm.Show();
                    //子窗体大小设置为选项卡大小
                    objfrm.Size = tabPage.Size;
                    //将子窗体添加到选项卡中
                    tabPage.Controls.Add(objfrm);
                    //设置当前选项卡为新增选项卡
                    MainTabControl.SelectedTab.Name = MainTabControlKey;
                }
                else
                {
                    //设为当前选中的选项
                    MainTabControl.SelectTab(MainTabControlKey);
                }
            }
            catch (Exception)
            {
                showMessages objshowMesages = new showMessages();
                objshowMesages.ShowDialog("提示信息", "添加选项卡时出错,请检查是否正确连接数据");
            }
        }

下面的验证方法ErgodicModiForm

[C#] 纯文本查看 复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
/// </summary>
        /// <param name="MainTabControlKey">选项卡的键值</param>
        /// <param name="objTabControl">要添加到的TabControl对象</param>
        /// <returns></returns>
        private Boolean ErgodicModiForm(string MainTabControlKey, TabControl objTabControl)
        {
            //遍历选项卡判断是否存在该子窗体
            foreach (Control con in objTabControl.Controls)
            {
                TabPage tab = (TabPage)con;
                if (tab.Name == MainTabControlKey)
                {
                    return false;//存在
                }
            }
            return true;//不存在
        }

下面的调用添加

[C#] 纯文本查看 复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
try
            {
                //声部门控件对象
                UserDepartments objfrm = new UserDepartments();
                //调用添加选项卡的方法
                addTabControl("Departments", "部门信息", MainTabControl, objfrm);
            }
            catch (Exception)
            {
                showMessages objshowMesages = new showMessages();
                objshowMesages.ShowDialog("提示信息", "添加选项卡时出错,请检查是否正确连接数据");
            }

这样就可以动态的添加了, 还可以删除

try { MainTabControl.TabPages.Remove(MainTabControl.SelectedTab); } catch { showMessages objshowMesages = new showMessages(); objshowMesages.ShowDialog("提示信息", "已没有项目可删!"); }

http://www.sufeinet.com/thread-66-1-1.html

转载于:https://www.cnblogs.com/Echo529/p/6382438.html

[TabControl] TabControl控件的最佳实践,可以把一个窗体和用户控件添加进来相关推荐

  1. 信创办公--基于WPS的Word最佳实践系列(快速自定义访问工具栏)——以添加“输出为PPTX”命令为例

    信创办公–基于WPS的Word最佳实践系列(快速自定义访问工具栏)--以添加"输出为PPTX"命令为例 项目背景 工作中,我们通常需要在word中提炼出内容,再用PPT将内容呈现出 ...

  2. 无边框窗体和用户控件以及权限

    无边框窗体: 就是吧窗体的边框去掉,然后自己做按钮设置功能. 无边框窗体的移动: 将下面代码直接复制粘贴,将窗体的鼠标按下事件的方法改成下面方法的名字就可以直接使用 1 //窗体移动API 2 [Dl ...

  3. 前后端分离最佳实践:搭建一个复习算法题的网站ReviseCode(一)

    前言:很多人学完SSM就直接学SpringBoot,几乎没有试过整合SSM框架,导致仅仅是学会了SpringBoot使用,并不知道为什么是这样配置.另一方面,有的人整合了SSM框架,并且配置完后完成了 ...

  4. 控件把鼠标放上去出现一个小窗口_控件跟着鼠标走,VBA让你的操作随心所欲

    大家好,我们今日继续讲解VBA代码解决方案的第97讲内容:控件跟随鼠标,在利用VBA写代码的时候,往往很多发现是不经意间的.对于这类发现要善于总结,善于利用才能逐渐的提高自己的能力.例如在前几篇文章中 ...

  5. 微信公众号最佳实践 ( 4.7)获取用户地理位置

    开通了上报地理位置接口的微信公众号,在用户关注并进入微信公众号回话时,会弹框让用户确认是否允许微信公众号使用其地理位置.弹框只在关注后出现一次,用户以后可以在微信公众号详情页面进行操作. 本章代码还需 ...

  6. 在asp.net中为Web用户控件添加属性和事件

    在90年代初,Microsoft为Web程序员提供的 Active Server Pages(ASP)革命性地改变了Web的编程.它可以利用十分易用的模型在Web服务器上动态生成HTML,并且很容易的 ...

  7. ASP.NET 实践:使用用户控件实现 Web 部件的个性化

    这个实践示范了如何创建依赖于 Web 部件个性化的 ASP.NET 用户控件,并在 Web 页面中提供用户特定的默认值. ASP.NET Web 部件控件集允许你建立拥有模块化布局的 Web 页面,并 ...

  8. 【翻译】2020年云安全综合指南(风险,最佳实践,认证)

    翻译自:https://kinsta.com/blog/cloud-security/#what-is-kaspersky-security-cloud 云安全性包含技术,控件,流程和策略,这些技术, ...

  9. 《Web前端开发最佳实践》读书笔记

    总的来说,这本书给我感觉帮助不大,比较适合新手,对新手养成好的习惯有些帮助.更深层次的东西比较少,而且由于书的发行周期,对于前端这种日新月异的技术来说,过时.与新技术新理念脱节,是没法避免的事情(20 ...

最新文章

  1. python 3.5 成功安装 scrapy 的步骤
  2. java object 比较_Java比较两个对象
  3. iPhone开发经典语录
  4. linux 停止jar 指令,Linux编辑启动、停止与重启springboot jar包脚本实例
  5. 如何清理电脑c盘_【电脑】第一期干货:如何正确清理C盘?
  6. java实现 tf-idf
  7. SAP 43亿美元收购Ariba 拓展云计算市场
  8. ios共享账号公众号_新增iOS应用账号共享09
  9. Python 资源索引[绝对适合PYTHON人]
  10. turtle库绘图:绘制QQ所有表情
  11. cubic 插值和 bicubic,pytorch, opencv和matlab的实现差异
  12. WPS解决账号登录验证问题(软件抓包重写过验证通用方法)
  13. 钢琴五线谱 学习分享(兴趣爱好)
  14. 哪个心情不好来看看,老逗了
  15. 微信小程序开发笔记 进阶篇⑤——getPhoneNumber 获取用户手机号码(基础库 2.21.2 之前)
  16. 灰狼优化算法训练多层感知神经网络研究(Matlab代码实现)
  17. 计算机网络hdcp是什么意思,4.HDCP:支持高带宽数字内容保护协议HDCP
  18. 利用for循环,计算1+2+3+……+100。等差数列求和
  19. Objective-C(八、正式协议Protocol,非正式协议informal protocol)——iOS开发基础
  20. 基于matlab的动态规划程序实现,基于MATLAB的动态规划常用算法的实现

热门文章

  1. how to use automake to build files
  2. LabelSmoothing标签平滑
  3. 自定义训练中保存检查点
  4. 【matlab】直方图(hist函数的应用)
  5. android actionbar tab,ActionBar+Fragment实现Tab
  6. Python进程间通信之管道Pipe
  7. 用python写一个程序来验证每个数字的生成概率是否相同_Python实现简单生成验证码功能【基于random模块】...
  8. tomcat上的javaweb项目如何将ip地址更换为域名_Java Web 路线规划
  9. 从零开始刷Leetcode——数组(31.33)
  10. java 串口通信问题_jsp,java串口通信的问题