http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 46322|回复: 13
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-7-11 10:40:11 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
看下效果吧

下面是一个公共的添加方法
看代码
[C#] 纯文本查看 复制代码
/// <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#] 纯文本查看 复制代码
/// </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#] 纯文本查看 复制代码
try
            {
                //声部门控件对象
                UserDepartments objfrm = new UserDepartments();
                //调用添加选项卡的方法
                addTabControl("Departments", "部门信息", MainTabControl, objfrm);
            }
            catch (Exception)
            {
                showMessages objshowMesages = new showMessages();
                objshowMesages.ShowDialog("提示信息", "添加选项卡时出错,请检查是否正确连接数据");
            }

这样就可以动态的添加了, 还可以删除
[C#] 纯文本查看 复制代码
try
            {
                MainTabControl.TabPages.Remove(MainTabControl.SelectedTab);
            }
            catch
            {
                showMessages objshowMesages = new showMessages();
                objshowMesages.ShowDialog("提示信息", "已没有项目可删!");
            }



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
沙发
发表于 2013-4-3 11:25:20 | 只看该作者
非常感谢楼主帮了我的大忙,真的太感谢你啦!
板凳
发表于 2013-5-31 17:19:03 | 只看该作者
受教了,学习中……
地板
发表于 2013-6-19 11:09:57 | 只看该作者
受教了,学习中……
5
发表于 2014-8-9 09:15:25 | 只看该作者
受教了,学习中……
6
发表于 2014-8-17 17:13:40 | 只看该作者
新手有点疑问,这个 UserControl objfrm是自定义类型的窗体才能这样显示吗?我试了下form类型的窗体貌似不能。。。
7
发表于 2014-8-28 10:53:45 | 只看该作者
Transformer 发表于 2014-8-17 17:13
新手有点疑问,这个 UserControl objfrm是自定义类型的窗体才能这样显示吗?我试了下form类型的窗体貌似不 ...

是的是用户控件 没必要使用Form类型的,不方便,使用这个用户控件就够了,
8
发表于 2015-1-4 13:00:27 | 只看该作者
受教了学习中……
9
发表于 2015-5-10 20:07:08 | 只看该作者
站长苏飞 发表于 2014-8-28 10:53
是的是用户控件 没必要使用Form类型的,不方便,使用这个用户控件就够了,

UserDepartments这个怎么用的
10
发表于 2015-5-13 16:05:01 | 只看该作者
UserDepartments是楼主建好的一个UserControl。
我没弄清的是,UserControl是像form一样可以建立一个窗口,然后往里面放控件吗?我怎么找不到?怎么把好多控件放到UserControl里去?
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-19 04:46

© 2014-2021

快速回复 返回顶部 返回列表