最近在用C#做项目时,用到TabControl这个控件,将学到的东西做个总结:
一、拖一个TabControl控件到窗口上,在控件上点击右键,可以添加选项卡/删除选项卡;或者在属性中找到TabPages,点击进去,可以看到TabPages编辑器,这里也可以添加或移除选项卡,

在右侧的属性里找到Text,可以修改对应选项卡的名称。

二、我想实现右键选中选项卡,并出现菜单:
首先需要添加一个contextMenuStrip1控件,添加需要显示的选项,

其次将TabControl属性中的contextMenuStrip选项绑定为contextMenuStrip1

然后双击响应的选项进入程序中编写相应事件程序。

   private void 添加值ToolStripMenuItem_Click(object sender, EventArgs e){int number = tabControl1.TabPages.Count;TabPage page = new TabPage();page.Text = "New"+ (number+1);tabControl1.TabPages.Add(page);this.tabControl1.SelectedTab = page;//显示当前页}
//删除项private void 删除值ToolStripMenuItem_Click(object sender, EventArgs e){if (MessageBox.Show("确定要删除吗?", "提示!", MessageBoxButtons.YesNo) == DialogResult.Yes){tabControl1.TabPages.Remove(tabControl1.SelectedTab);}}

三、TabControl添加MouseDown事件


双击MouseDown,开始写代码:

        private void tabControl1_MouseDown(object sender, MouseEventArgs e){if (e.Button == MouseButtons.Right){for (int i = 0; i < tabControl1.TabPages.Count; i++){if (tabControl1.GetTabRect(i).Contains(new Point(e.X, e.Y))){tabControl1.SelectedTab = tabControl1.TabPages[i];}}}}

三、动态添加lable和textbox

 TextBox[] textBox = new TextBox[2];Label[] labels = new Label[2];for (int i = 0; i < textBox.Length; i++){textBox[i] = new TextBox();textBox[i].Location = new Point(i * 125 + 40, 7);textBox[i].Size = new Size(80, 25);page.Controls.Add(textBox[i]);在当前页中添加textBoxtextBox[i].BringToFront();     //设置textBox在最顶层}string[] text =new string[] { "min", "max" };for (int i = 0; i < labels.Length; i++){labels[i] = new Label();labels[i].Text = text[i];labels[i].Location = new Point(i * 125 + 5, 8);labels[i].Size = new Size(31, 15);page.Controls.Add(labels[i]);//在当前页中添加labellabels[i].BringToFront(); //设置labels在最顶层}

最后结果:

还有个问题没有搞好,就是重命名,希望大神看到能给点指点。

程序下载:https://download.csdn.net/download/fenglearning/19890278

C#中TabControl相关用法相关推荐

  1. Python中return相关用法

    一.return的简介 return故名思意即返回的作用,返回什么呢?将函数运行结果--你想从相应函数中得到的结果返回到函数调用的位置.通俗的讲就是将调用函数的结果上传. 代码如下: def plus ...

  2. Java 8中stream相关用法

    jdk1.8新加了lambda表达式,可以帮助开发者更好的,更高效的实现一些通常复杂的代码实现 1.list转换map Map<Integer, String> mappedMovies ...

  3. Java中Date各种相关用法

    Java中Date各种相关用法 本文主要介绍Java中Date各种相关用法. AD:   Java中Date各种相关用法(一) 1.计算某一月份的最大天数 Java代码 Calendar time=C ...

  4. C++中容器的分类以及相关用法

    C++中容器的分类以及相关用法 C++中的容器类型及使用 容器的分类 array 数组 vector 向量 list 列表 deque队列 关联容器 迭代器 C++中的容器类型及使用 容器的概念:   ...

  5. python static 的用法_Python中static相关知识小结

    非 static 编译 不指定额外参数直接编译 Python: $ ./configure $ make 查看所依赖的共享库: $ ldd python linux-vdso.so.1 => ( ...

  6. mysql中正则表达式的用法_Mysql中正则表达式Regexp常见用法

    Mysql中Regexp常见用法 模糊匹配,包含特定字符串 # 查找content字段中包含"车友俱乐部"的记录 select * from club_content where ...

  7. 【C++】C/C++ 中 static 的用法全局变量与局部变量

    C/C++ 中 static 的用法全局变量与局部变量 目录 1. 什么是static? 1.1 static 的引入 1.2 静态数据的存储 2. 在 C/C++ 中static的作用 2.1 总的 ...

  8. python中str的index什么意思_python中index的用法是什么

    index() 一般用处是在序列中检索参数并返回第一次出现的索引,没找到就会报错,比如:>>> t=tuple('Allen') >>> t ('A', 'l', ...

  9. php foreach是什么,php中foreach的用法是什么

    php中foreach的用法是:[foreach ($array as $value) {要执行代码;}],每进行一次循环,当前数组元素的值就会被赋值给$value变量,在进行下一次循环时,将得到数组 ...

最新文章

  1. 使用ssh连接gitHub
  2. 在 Linux 上给用户赋予指定目录的读写权限
  3. 动手打造自己强大的右键菜单
  4. FieldGroup绑定的日期类型存储格式的问题
  5. python中文教程-中谷python中文视频教程(全38集)
  6. i27岁转行java,JavaTM I/O 性能分析[转]
  7. 阿里技术专家对 SRE 的解读
  8. 介绍Pro*c编程的经验
  9. plsq卸载 删除注册表、_win10操作系统下oracle11g客户端/服务端的下载安装配置卸载总结...
  10. 使用Travis CI自动部署Hexo博客
  11. js中精度问题以及解决方案
  12. react redux 简化_Redux 源码解析
  13. matlab画图标签,Matlab绘图
  14. 古诗词知识图谱(一)
  15. 数字频率计的功能及工作原理
  16. PowerApps 中的 Filter、Search 和 LookUp 函数
  17. Android 图片查看器选择器 PictureSelector
  18. mui12搭载鸿蒙,MUI系统最新资讯
  19. Nginx在CDN加速之后,获取用户真实IP做并发访问限制的方法
  20. Ensemble Average(系综平均)(集平均)

热门文章

  1. 解放号测试家亮相西安2016“全国大众创业万众创新活动周”
  2. SWUST OJ#614求圆柱体的体积
  3. 浅谈android网络框架——以课程格子的bug为例
  4. 【CodeForces 1100E】二分答案 | 拓扑排序 | E
  5. 198页11万字智慧水务平台建设方案(word)
  6. VMware vSphere Data Protection
  7. 大数据数仓搭建-大数据用户画像推荐系统搭建
  8. python 生成对抗网络
  9. python find 正则表达式_python正则表达式
  10. XnView:图片管理的工具