C#控件:TabControl
tabcontrol在切换页面的时候经常用到
这里讲下如何让tabcontrol更好看
ref:http://blog.csdn.net/conmajia/article/details/7596718
http://wenku.baidu.com/link?url=y4BdtX3mOer4Hdin019jJpXJLi-2_ehmEo7i08cxEp1OR_3gb5CqaHrnNEB2iLQyNDqpkNtnuREmn4GWpur081mIPuNH-1184wLkFzsVuEq
一。 创建一个类,加引用,using什么的,TabControlEx的基类为System.Windows.Forms.TabControl
二。加代码
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; using System.Drawing; using System.Drawing.Drawing2D; namespace MyTabControl { public class TabControlEx : System.Windows.Forms.TabControl { Image backImage; public TabControlEx() { base.SetStyle( ControlStyles.UserPaint | ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw | ControlStyles.SupportsTransparentBackColor, true); base.Update(); this.SizeMode = TabSizeMode.Fixed; , ); backImage = new Bitmap(this.GetType(), "MyTabControl.bmp"); } Form oldman; protected override void OnParentChanged(EventArgs e) { if (oldman == null) oldman = this.FindForm(); oldman.Text = ].Text; } protected override void OnSelected(TabControlEventArgs e) { Parent.Text = e.TabPage.Text; } protected override void OnPaint(PaintEventArgs e) { e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias; ; i < this.TabCount; i++) { //e.Graphics.DrawRectangle(Pens.Red, this.GetTabRect(i)); if (this.SelectedIndex == i) { e.Graphics.DrawImage(backImage, this.GetTabRect(i)); } Rectangle bounds = this.GetTabRect(i); PointF textPoint = new PointF(); SizeF textSize = TextRenderer.MeasureText(this.TabPages[i].Text, this.Font); textPoint.X = bounds.X + (bounds.Width - textSize.Width) / ; textPoint.Y = bounds.Bottom - textSize.Height - this.Padding.Y; e.Graphics.DrawString( this.TabPages[i].Text, this.Font, SystemBrushes.ControlLightLight, textPoint.X, textPoint.Y); textPoint.Y--; e.Graphics.DrawString( this.TabPages[i].Text, this.Font, SystemBrushes.ControlText, textPoint.X, textPoint.Y); if (this.ImageList != null) { int index = this.TabPages[i].ImageIndex; string key = this.TabPages[i].ImageKey; Image icon = , ); ) { icon = this.ImageList.Images[index]; } if (!string.IsNullOrEmpty(key)) { icon = this.ImageList.Images[key]; } e.Graphics.DrawImage( icon, bounds.X + (bounds.Width - icon.Width) / , bounds.Top + this.Padding.Y); } } } } }
三。加imagelist,并且为tabcontrol里的tabpage设置imageindex和imageKey
四。将此类加入工具箱中,注意将该项目的属性里的调试改为外部程序调试
C#控件:TabControl的更多相关文章
- [C#开发小技巧]解决WinForm控件TabControl闪烁问题
在用C#开发WinForm程序时,常发现TabControl出现严重的闪烁问题,这主要是由于TabControl控件在实现时会绘制默认的窗口背景.其实以下一段简单的代码可以有效的缓解该问题的发生.这就 ...
- C#控件TabControl隐藏page
隐藏 这个需求其实就是TABCONTROL控件会有很多提前制作好的PAGE页面,每次软件启动不可能所有页面都显示出来,目前想了个比较简单的方法解决这个问题 首先定义一个List集合存储TABCONTR ...
- Access-自定义控件TabControl
p{ font-size: 15px; } .alexrootdiv>div{ background: #eeeeee; border: 1px solid #aaa; width: 99%; ...
- C# Winform关于控件TabControl闪烁的问题
自己重写了一个Form,然后再该form上放一个TabControl鼠标移上去会闪烁,经过网上查找解决方案,最后总算是解决了....下面附上代码: 重写一个TabControl代码如下: using ...
- WINFORM控件tabcontrol,隐藏,调用等等
1先说显示项的控制, 第一个是selectedIndex属性这个实用性不是太强,但是如果不涉及到隐藏,删除,增加tabpage的话,也可以用. 第二个是selectedTab=tabPage1,这个属 ...
- Visual Studio中的TabControl控件的用法
今天遇到了一个自己没遇到过的控件TabControl控件,所以找了点关于它的资料 TabControl属性 DisplayRect:只定该控件客户区的一个矩形 HotTrack:设置当鼠标经过页标签 ...
- .net中,控件(Name)属性或ID属性的常见命名规则
控件名称 缩写 介绍 公共控件 Button btn 按钮 CheckBox chk 复选框 CheckedListBox ckl 显示一个项列表,其中每一项左侧都有一个复选框 ComboBox ...
- WPF学习(三)--Menu、TabControl和DataGrid控件介绍
Menu Menu提供了菜单栏方式的多级菜单的管理和操作: 这里对Menu的样式不做任何的定制和管理 下面来对Menu进行测试: 将Menu添加到页面中 运行后,效果如下: 这里没有考虑界面效果和样式 ...
- WPF中viewmodel层怎样得到view层的TabControl控件对象?
View层: <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns: ...
- TabControl控件的美化
文件下载:http://files.cnblogs.com/zfanlong1314/TabControlEX.rar 本文转载:http://www.cnblogs.com/lmlblog/arch ...
随机推荐
- Medusa: Gauges for JavaFX
Medusa: Gauges for JavaFX https://community.oracle.com/docs/DOC-992746
- C#调用NPOI组件导出Excel表格
把一个List集合的数据导出到Excel表格中 public static string RenderToExcel<T>(List<T> datas) { MemoryStr ...
- 【转】Swing 与EDT线程
在Swing程序中,经常能看到如下这种代码: SwingUtilities.invokeLater(new Runnable(){ @Override public void run() { text ...
- $watch、$digest、$apply
$watch.$digest.$apply $watch 代表的就是对数据源的监听,当数据源发生变化,就会触发第二个参数的回调函数 $digest 代表触发一个数据源变化的事件 $apply 代表对于 ...
- 20145211 《Java程序设计》实验报告一:Java开发环境的熟悉(Windows+IDEA)
实验要求 使用JDK编译.运行简单的Java程序: 使用IDEA 编辑.编译.运行.调试Java程序. 实验内容 命令行下Java程序开发 IDEA下Java程序开发.调试 练习(通过命令行和IDEA ...
- Segments---poj3304(判断直线与线段的位置关系)
题目链接:http://poj.org/problem?id=3304 题意:给你n个线段,求是否有一条直线与所有的线段都相交,有Yes,没有No; 枚举所有的顶点作为直线的两点,然后判断这条直线是否 ...
- iOS初级数据持久化 沙盒机制 归档与反归档
数据持久化就是数据保存成文件,存储到程序中的沙盒中. 沙盒构成 Document 存储用户数据,需要备份的信息 Caches 缓存文件, 程序专用的支持文件 Temp 临时文件 通过代码查找程序沙盒的 ...
- sell-- 英文网站产品显示404?
1. 简介: 通过在主页(header.jsp)查询B22212,在localhost本地, cn和us查询的结果search.jsp中显示都是没有找到! 但是在外网(www),cn能够查询到,并展示 ...
- angularJs:动态效果之:显示与隐藏(该例对比了普通赋值,层次赋值,事件的写法对比)
testShowAndHiddern.html <!DOCTYPE html> <html ng-app="MyModule"> <head> ...
- PaySignKey
关键词:微信支付 PaySignKey 原文:http://www.cnblogs.com/txw1958/p/weixin-paysignkey.html 微信支付现在分为v2版和v3版 2014年 ...