【组件修改】winform某个tabcontrol控件的修改--加上关闭按钮
来源:互联网 发布:mysql日志文件在哪 编辑:程序博客网 时间:2024/05/16 00:28
【前言】
最近开始搞winform,要有一个美观大方的tabcontrol,并且可以关闭,偶然在网上的程序员之窗下载到一个,但是没有关闭按钮,所以我只能自己动手改装了。
我改装了两处地方,第一处,将close的图标绘制绘制出来--当鼠标在图标范围内则绘制选中样式的close按钮;
第二处:添加关闭事件,具体而言,当tabcontrol接收到点击事件时候,判断鼠标是不是在close范围,假如是,就调用remove方法去掉当前tab页面。
大概的代码如下:
/* 绘制关闭图标 */ Bitmap oImage = CSharpWin.Properties.Resources.window_close; Bitmap OImageSelected = CSharpWin.Properties.Resources.cross; // g.DrawImage(oImage,new PointF(textRect.X+20,textRect.Height-20)); Rectangle closeRect = new Rectangle(tabRect.X + tabRect.Width - 12 - 9, tabRect.Y + tabRect.Height - 12 - 6, 16, 16); if(closeRect.Contains(cusorPoint)){ g.DrawImage(OImageSelected, closeRect, 0, 0, 16, 16, GraphicsUnit.Pixel); } else{ g.DrawImage(oImage, closeRect, 0, 0, 16, 16, GraphicsUnit.Pixel); } /*绘制结束*/
/// <summary> /// 这里是鼠标对tab的点击事件,当发生的时候,获取当前鼠标位置,假如在closebtn上面,那么就直接关闭。 /// </summary> /// <param name="sender"></param> /// <param name="agrs"></param> private void init_click_handler(Object sender,MouseEventArgs agrs){ TabControl t1 = (TabControl)sender; int cSelectedIndex = t1.SelectedIndex; // MessageBox.Show("您点击了我,鼠标位置:" + agrs.X + " " + agrs.Y + " 当前选中的tab为:" +cSelectedIndex); Rectangle rect1= t1.GetTabRect(t1.SelectedIndex); // MessageBox.Show("当前选中的矩形信息为:left "+rect1.Left+",top "+rect1.Top+",width "+rect1.Width+",height "+rect1.Height+""); Rectangle closeRect = new Rectangle(rect1.X + rect1.Width - 12 - 9, rect1.Y + rect1.Height - 12 - 6, 16, 16); if (closeRect.Contains(new Point(agrs.X, agrs.Y))) { // MessageBox.Show("在close按钮范围里面"); //--假如在close按钮里面,就关闭 // this.TabPages.RemoveAt(cSelectedIndex ); this.TabPages.Remove(this.TabPages[cSelectedIndex]); } }
放心,我下面将项目源代码放出来,大家可以去下载。运行环境:vs2010,net4.0.
修改版tabcontrol
- 【组件修改】winform某个tabcontrol控件的修改--加上关闭按钮
- Winform -----TabControl 标签 画关闭按钮
- c#重写TabControl控件实现关闭按钮的方法
- c#重写TabControl控件实现关闭按钮
- 修改TabControl的样式(SilverLight)
- 选项卡带关闭按钮的TabControl
- winform TabControl 添加关闭按钮 Add close button to TabControl TabPages - C#
- TabControl添加关闭按钮
- TabControl添加关闭按钮
- 修改ubuntu的窗口关闭按钮位置
- ubuntu 10.10 关闭按钮位置的修改
- 修改ActionMode左边关闭按钮的图标
- winform tabControl隐藏顶部按钮
- 修改按钮控件上的字体
- TabControl tab绘制关闭按钮
- 给TabControl的Page添加个关闭按钮
- 让tabcontrol控件的某个选项卡不可用
- Winform Tabcontrol控件隐藏tabpage头部的方法
- C# Winform 按ESC关闭窗体
- Java bubble sort
- PHP的预定义常量
- LISP 8.7.1 堵住漏洞1——随机end值的漏洞及调用顺序漏洞
- 直接拿来用!最火的Android开源项目(二)
- 【组件修改】winform某个tabcontrol控件的修改--加上关闭按钮
- [.NET随笔系列一].NET学习路线
- 理工科同学转行经管咨询金融,一定要慎重
- 继续我的博客
- head first - design pattern
- 根据值(value)获取泛型Dictionary的键(key)
- 1124 - Celebrity jeopardy
- Linux 启动的流程
- 杭电1004