欢迎莅临 SUN WU GANG 的园子!!!

世上无难事,只畏有心人。有心之人,即立志之坚午也,志坚则不畏事之不成。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  470 随笔 :: 0 文章 :: 22 评论 :: 30万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

在使用TabControl控件时,需要考虑自动创建的TabPage页实现——关闭功能

思路一:自定义TabControl控件,添加关闭按钮

思路二:TabControl控件TabPage显示ToolTip属性(例如双击关闭)

此处,解释思路二,实现方式

操作步骤:

第一步:TabControl添加多个TabPage页,ShowToolTip=true;

第二步:TabPage,ToolTipText="双击关闭页签";

第三步:实现双击事件MouseDoubleClick,如下所示:

1
2
3
4
5
6
private void tabControl1_MouseDoubleClick(object sender, MouseEventArgs e)
       {
           //TabPage page = sender as TabPage;
           //this.tabControl1.TabPages.Remove(page);
           tabControl1.TabPages.RemoveAt(tabControl1.SelectedIndex);
       }

 

动态添加TabPage参考如下

AddTabPage("DirectRegisterForm", "登记中心");

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
private void AddTabPage(string formName, string formText)
       {
           TabPage page = this.tabContent.TabPages[formName];
           if (page != null)
           {
               tabContent.SelectedTab = page;
               page.Select();
               return;
           }
 
           TabPage tab = new TabPage();
           tab.Name = formName;
           tab.Text = formText;
           Form form = GetForm(formName);
           form.TopLevel = false;
           form.FormBorderStyle = FormBorderStyle.None;
           form.Dock = DockStyle.Fill;
 
           tab.Controls.Add(form);
           tabContent.TabPages.Add(tab);
           tabContent.SelectedTab = tab;
           form.Show();
       }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
private Form GetForm(object itemName)
      {
          try
          {
              this.Cursor = Cursors.WaitCursor;
 
              Assembly assembly = Assembly.GetExecutingAssembly();
              var path = "ZB.QueueSys.View." + itemName.ToString();
              Form form = assembly.CreateInstance(path) as Form;
              return form;
          }
          catch { return null; }
          finally
          {
              this.Cursor = Cursors.Default;
          }
      }

  

  

  

 

posted on   sunwugang  阅读(3458)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
历史上的今天:
2016-09-05 android学习笔记32——资源
点击右上角即可分享
微信分享提示