C# winform中自定义控件的继承

sinat_14913435 2016-03-28 06:17:08
想自定义一个控件CtrlChild,此控件继承自另一个自定义控件CtrFather,如何删除一部分,只留下需要的继续使用呢?发现删除不了呢求各位大神帮帮忙 不胜感激
...全文
547 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
大鱼> 2016-03-29
  • 打赏
  • 举报
回复
引用 8 楼 sinat_14913435 的回复:
[quote=引用 6 楼 qq_17486399 的回复:] 继承构造方法,传一个标志性参数。根据参数的不同加载不同的界面。
哦 谢谢指点,只是这样的话,只能用代码实现呀,要做大的改动的话,还是很麻烦的呀...,可以在子控件的界面上直接操作么[/quote] 这种方法是最有效的方法啊,因为你不想改动自定义的控件。如果你改动的地方很多的话,那就再写一个控件。
BitCoffee 2016-03-29
  • 打赏
  • 举报
回复

//CtrFather控件中:
public void RemoveControl(string controlName)
{
    this.Controls.RemoveByKey(contrilName);
}

//CtrFather的构造函数中调用:
base.RemoveControl("控件名称");
BitCoffee 2016-03-29
  • 打赏
  • 举报
回复
在CtrlChild这个的构造函数中去调用
sinat_14913435 2016-03-29
  • 打赏
  • 举报
回复
引用 6 楼 qq_17486399 的回复:
继承构造方法,传一个标志性参数。根据参数的不同加载不同的界面。
哦 谢谢指点,只是这样的话,只能用代码实现呀,要做大的改动的话,还是很麻烦的呀...,可以在子控件的界面上直接操作么
sinat_14913435 2016-03-29
  • 打赏
  • 举报
回复
引用 2 楼 yuyue59451222222 的回复:
你可心通过new这个你想要删除的方法(方法里面不实现)来覆盖老方法,这样就相当于这个子控件删除了父控件中的方法。
我想删除控件 不是方法呀...[/quote] 没看懂,你要删的是哪个控件? 你是不是要删除控件CtrFather中的部分功能?[/quote] 恩 确切的说是删除CtrFather中的部分子控件 不知道表述清楚了没有( ˇˍˇ )
大鱼> 2016-03-29
  • 打赏
  • 举报
回复
继承构造方法,传一个标志性参数。根据参数的不同加载不同的界面。
sinat_14913435 2016-03-29
  • 打赏
  • 举报
回复
谢谢大家 结贴结贴
nry19871012 2016-03-28
  • 打赏
  • 举报
回复
类似如下

        /// <summary>
        /// 父类虚方法(返回的是2)
        /// </summary>
        /// <returns></returns>
        public virtual string ToStrings()
        {
            return "2";
        }

        /// <summary>
        /// 子类重载,你不需要使用父类返回的2,直接返回空字符串,
        /// 这样就等于把父类的功能取消掉了。
        /// 这并不影响,其它子类的功能。
        /// </summary>
        /// <returns></returns>
        public override string ToStrings()
        {
            return "";
        }


yuyue5945 2016-03-28
  • 打赏
  • 举报
回复
引用 3 楼 sinat_14913435 的回复:
[quote=引用 2 楼 yuyue59451222222 的回复:] 你可心通过new这个你想要删除的方法(方法里面不实现)来覆盖老方法,这样就相当于这个子控件删除了父控件中的方法。
我想删除控件 不是方法呀...[/quote] 没看懂,你要删的是哪个控件? 你是不是要删除控件CtrFather中的部分功能?
sinat_14913435 2016-03-28
  • 打赏
  • 举报
回复
引用 2 楼 yuyue59451222222 的回复:
你可心通过new这个你想要删除的方法(方法里面不实现)来覆盖老方法,这样就相当于这个子控件删除了父控件中的方法。
我想删除控件 不是方法呀...
yuyue5945 2016-03-28
  • 打赏
  • 举报
回复
你可心通过new这个你想要删除的方法(方法里面不实现)来覆盖老方法,这样就相当于这个子控件删除了父控件中的方法。
sinat_14913435 2016-03-28
  • 打赏
  • 举报
回复
前提是不改变父控件哦,因为其他的地方还要用

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧