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

 阅读全文并下载全部代码:http://www.cckan.net/forum.php?mod=viewthread&tid=66

添加的方法看代码

Code
 /**//// <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(
"提示信息""添加选项卡时出错,请检查是否正确连接数据");
            }

        }

 

下面的验证是否存在

 

 

Code
 /// </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;//不存在
        }

 

下面的调用添加

 

Code
 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("提示信息", "已没有项目可删!");
            }

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值