已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
WinForm中TabControl的一些事件写法(C#) 在TabControl控件中并没提供单个选项卡的Click事件,今天下午翻了翻MSDN 结果还是没找到相关的文档:( 看来只有自个儿折腾了.还好有个SelectedIndexChanged事件为我所用:) 以下是代码片段:privatevoidtabControl1_SelectedIndexChanged(objectsender,System.EventArgse) switch(this.tabControl1.SelectedIndex) case0: MessageBox.Show(tabPage1isSelected); break; case1: MessageBox.Show(tabPage2isSelected); break; 在WinForm开 发的过程中,MDI是一种常见的形式。在MDI主窗体打开的子窗体处于活动状态的只有一个,很多时候我们需要在打开的MDI子窗 体中切换。然而.Net的框架并没有提供一种易见的切换方式,当然可以通过“Ctrl+Tab”来切换,但是这种方式是不易见的,并且只能按照打开窗体的 顺序来切换。 下面来介绍一种结合了TabCotrol控件的软件设计形式。 这种设计形式要解决三个问题: (1)TabControl的TabPage要和窗体对应 (2)TabControl的TabPage切换的时候,对应的窗体要激活 (3)窗体的新建或关闭,对应的TabPage要创建或撤销 下面就来一步步的解决这些问题 首先拖一个TabControl控件到MDI主窗口中,设置其DOCK为Bottom或者TOP,根据需要也可以设置到左或右。设置其Height为0。主窗体添加如下代码: /切换TabPage,将对应的窗体激活 private void tabControl_SelectedIndexChanged(object sender, EventArgs e) if (this.MdiChildren.Length 0) for (int i = 0; i 0 & tabControl.SelectedIndex -1) for (int i = 0; i this.MdiChildren.Length; i+) if (this.tabControl.SelectedIndex = i) this.MdiChildreni.WindowState = FormWindowState.Maximized; this.MdiChildreni.Visible = true; this.MdiChildreni.Activate(); else if (this.MdiChildreni.Visible = true) this.MdiChildreni.Visible = false; /增加TabPage,将对应的窗体激活 private void tabControl_ControlAdded(object sender, ControlEventArgs e) if (this.tabControl.SelectedIndex = 0) this.ChangeTabPage(); /关闭TabPage,将对应的窗体关闭 private void tabControl_ControlRemoved(object sender, ControlEventArgs e) /if (this.tabControl.SelectedIndex = 0) /this.ChangeTabPage(); /窗体关闭的时候,撤销对应的TabPage public void RemoveTabPage(TabPage tb) this.MultiPageControl.TabPages.Remove(tb); if (this.tabControl.TabPages.Count = 0) this.TabControlSize = new Size(this.TabControlSize.Width, 0); /窗体创建的时候,创建对应的TabPage public void AddTabPage(TabPage tb) if (this.tabControl.TabPages.Count = 0) this.TabControlSize = new Size(this.TabControlSize.Width, 20); this.MultiPageControl.TabPages.Add(tb); this.MultiPageControl.SelectedTab = tb; /获取TabControl控件,以便子窗体调用(只读) public TabControl MultiPageControl get return this.tabControl; /获取TabControl控件的Size属性,以便子窗体调用 public Size TabControlSize get return this.tabControl.Size; set this.tabControl.Size = value; 对应子窗体,每个窗体打开的时候,主窗体都需要创建一个TabPage,关闭的时候,都要撤销一个TabPage,也就是说所有的子窗体都有共同的属性和功能,所以我设置了一个父窗体来实现这些功能,子窗体通过继承而拥有这些功能。 private frmMain frMain = null; private TabPage tabPage = new TabPage(); private void frmTabMain_ParentChanged(object sender, EventArgs e) if (this.MdiParent != null) this.tabPage.Text = this.Text + ; frMain = this.MdiParent as frmMain;/获取主窗体 frMain.AddTabPage(tabPage);/调用主窗体方法,创建一个TabPage /窗体被激活,对应的TabPage也呈选中状态 private void frmTabMain_Enter(object sender, EventArgs e) if (this.frMain != null) for (int i = 0; i this.frMain.MdiChildren.Length; i+) if (this.frMain.MdiChildreni = this) this.frMain.MultiPageControl.SelectedIndex = i; /窗体关闭,调用主窗体方法,撤销对应TabPage private void frmTabTitleMain_FormClosed(object sender, FormClosedEventArgs e) this.Dispose();
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025湖南常德桃源县惠民中小企业融资担保有限公司招聘2人笔试参考题库附带答案详解
- 2026及未来5年中国2-萘胺-3,6,8-三磺酸市场数据分析及竞争策略研究报告
- 眉山市2025下半年中共四川天府新区眉山工作委员会党群工作部四川天府新区眉山教育笔试历年参考题库典型考点附带答案详解
- 2026乌鲁木齐市辅警招聘考试题库及答案
- 2025-2030中国化学制剂行业市场全景调研及投资价值评估咨询报告
- 2025-2030高端微电子锡基焊粉材料行业发展机遇及投资策略深度研究研究报告
- 2025-2030中国心脏保健胶囊市场供需现状及战略规划投资可行性研究报告
- 2026中国智能控制器行业运营态势及投资盈利预测报告
- 2025-2030中国偏硅酸矿泉水市场营销策略及前景竞争优势分析研究报告
- 2026中国半导体超高纯度(UHP)阀门行业运行态势与应用前景预测报告
- 八年级国测数学试卷
- 2024年全国甲卷高考历史试卷(真题+答案)
- 2023年重庆理工大学应届生招聘科研助理考试真题
- 中医养生中的药膳食疗的课件
- 《山东饮食介绍》课件
- 文旅局消防安全培训课件
- 角膜化学性烧伤护理查房课件
- 控制电缆施工方案
- 渣土公司运输车辆管理制度(3篇)
- 针刀手法治疗脊柱侧弯专家讲座
- 污水处理厂电气设备运行与维护操作规程
评论
0/150
提交评论