西西软件园多重安全检测下载网站、值得信赖的软件下载站!
软件
软件
文章
搜索

首页编程开发其它知识 → 去掉TabControl控件默认添加的TabPage两种解决方案

去掉TabControl控件默认添加的TabPage两种解决方案

相关软件相关文章发表评论 来源:本站整理时间:2010/8/24 0:21:03字体大小:A-A+

作者:佚名点击:95次评论:0次标签: 控件 tab

  • 类型:远程监控大小:4.6M语言:中文 评分:5.7
  • 标签:
立即下载

把TabControl添加到设计器的时候,默认会添加两个TabPage,当继承TabControl自定义控件的时候,这两个默认的TabPage常常会制造一些麻烦,今天我来介绍一种方法来去掉这两个默认的TabPage:
实际上思路比较简单,主要是通过ToolboxItem特性提供自定义的ToolboxItem类来修改工具箱中的控件的初始化工程,只需要继承ToolboxItem类,重写CreateComponentsCore方法就可以实现了:
[ToolboxItem(typeof(DemoToolboxItem))]
public class MyTabControl : TabControl
{
}


[Serializable] //ToolboxItem必须是可序列化的
class DemoToolboxItem : ToolboxItem
{
// The add components dialog in VS looks for a public
// ctor that takes a type.
public DemoToolboxItem(Type toolType)
: base(toolType)
{
}

// And you must provide this special constructor for serialization.
// If you add additional data to MyToolboxItem that you
// want to serialize, you may override Deserialize and
// Serialize methods to add that data.
DemoToolboxItem(SerializationInfo info, StreamingContext context)
{
Deserialize(info, context);
}

// This implementation sets the new control's Text and
// AutoSize properties.
protected override IComponent[] CreateComponentsCore(
IDesignerHost host,
IDictionary defaultValues)
{

IComponent[] comps = base.CreateComponentsCore(host, defaultValues);


MessageBox.Show(((MyTabControl)comps[0]).TabPages.Count.ToString());
((MyTabControl)comps[0]).TabPages.RemoveAt(0);//去掉默认添加的TabPage
((MyTabControl)comps[0]).TabPages.RemoveAt(0);
return comps;
}
}
当然,如果愿意的话,也可以自己在CreateComponentsCore中添加自定义的TabPage来使我们的TabControl更加的有实用价值!

    相关评论

    阅读本文后您有什么感想? 已有人给出评价!

    • 8 喜欢喜欢
    • 3 顶
    • 1 难过难过
    • 5 囧
    • 3 围观围观
    • 2 无聊无聊

    热门评论

    最新评论

    发表评论 查看所有评论(0)

    昵称:
    表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
    字数: 0/500 (您的评论需要经过审核才能显示)