当前位置:  开发笔记 > 编程语言 > 正文

如何创建TabPage的子类,我可以像UserControl一样编辑它?

如何解决《如何创建TabPage的子类,我可以像UserControl一样编辑它?》经验,为你挑选了1个好方法。

我想创建一个包含一些控件的TabPage子类,我想通过设计器控制这些控件的布局和属性.但是,如果我在设计器中打开我的子类,我就无法像在UserControl上那样定位它们.我不想创建一个带有UserControl实例的TabPage,我想直接设计TabPage.

我怎么做?我已经尝试更改Designer和DesignerCategory属性,但我没有找到任何有用的值.



1> Hath..:

我过去也遇到过类似的问题.

我先做的是从继承Usercontrol切换到tabpage,就像这样

class UserInterface:UserControl //设计器位然后将其更改为

class UserInterface:TabPage

第二个我只需将所有控件和内容放在usercontrol中,并将其停靠在一个标签页中.

第三,我做了一个通用类,它接受任何用户控制并自动进行对接.

所以你可以拿你的'UserInterface'类,然后得到一个你可以添加到System.Windows.Forms.TabControl的类型

public class UserTabControl : TabPage
    where T : UserControl, new ()
{
    private T _userControl;
    public T UserControl 
    { 
        get{ return _userControl;}
        set
        {          
            _userControl = value;
            OnUserControlChanged(EventArgs.Empty);
        }
    }
    public event EventHandler UserControlChanged;
    protected virtual void OnUserControlChanged(EventArgs e)
    {
        //add user control docked to tabpage
        this.Controls.Clear();      
        UserControl.Dock = DockStyle.Fill;
        this.Controls.Add(UserControl);

        if (UserControlChanged != null)
        {
            UserControlChanged(this, e);
        }
    }

    public UserTabControl() : this("UserTabControl")
    {
    }

    public UserTabControl(string text) 
        : this( new T(),text )
    {
    }

    public UserTabControl(T userControl) 
        : this(userControl, userControl.Name)
    {
    }

    public UserTabControl(T userControl, string tabtext)
        : base(tabtext)
    {
        InitializeComponent();
        UserControl = userControl;  
    }

    private void InitializeComponent()
    {
        this.SuspendLayout();
        // 
        // UserTabControl
        // 

        this.BackColor = System.Drawing.Color.Transparent;
        this.Padding = new System.Windows.Forms.Padding(3);
        this.UseVisualStyleBackColor = true;
        this.ResumeLayout(false);
    }
}

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有