大神们求助:C#窗体继承

chopic 2013-03-16 06:05:06
我有一个窗体,还需要做很多类似的窗体,我想重用现在的窗体而不是去按照现有的窗体再一一新建,可以自定义一个窗体然后继承现有的窗体么?现有窗体还需要外部传入数据。
...全文
445 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
清明_ 2013-03-18
  • 打赏
  • 举报
回复
继承窗口 应该可以吧
sbicfwxf9 2013-03-18
  • 打赏
  • 举报
回复
窗体也是类,跟类之间的继承一样看待就行了。包括父类对象的调用等等。
chopic 2013-03-18
  • 打赏
  • 举报
回复
引用 21 楼 davinciyxw 的回复:
和写ClassA:ClassB是一样的 FormA:FormB FormB中的public的东西,对A来说都是可以用的
谢谢了,我先试试
  • 打赏
  • 举报
回复
和写ClassA:ClassB是一样的 FormA:FormB FormB中的public的东西,对A来说都是可以用的
chopic 2013-03-17
  • 打赏
  • 举报
回复
还是说 可以在子类中通过这种方法来触发父类中的事件呢?
chopic 2013-03-17
  • 打赏
  • 举报
回复
引用 17 楼 sp1234 的回复:
如果你需要触发事件 --〉 如果你响应相同的事件处理方法 同样地,如果需要触发事件,一样是protected调用,例如:C# code?1234567 public event EventHandler<EventArgs> MyEvent; protected void OnButton1Click() { ……
额 这段代码有点没看懂啊,public event EventHandler<EventArgs> MyEvent是子窗体中触发的事件么?
  • 打赏
  • 举报
回复
类似地,假设你需要重写,那么可以定义为
        protected virtual void OnButton1Click()
        {
            //.....
        }
  • 打赏
  • 举报
回复
如果你需要触发事件 --〉 如果你响应相同的事件处理方法 同样地,如果需要触发事件,一样是protected调用,例如:
        public event EventHandler<EventArgs> MyEvent;

        protected void OnButton1Click()
        {
            if (MyEvent != null)
                MyEvent(this, new EventArgs());
        }
chopic 2013-03-17
  • 打赏
  • 举报
回复
引用 14 楼 sp1234 的回复:
引用 10 楼 chopic 的回复:父类中的事件在子类中也可以调用么?子类需要重写这个事件么,第一次接触继承窗体,有没有例子可以借鉴一下啊~ 如果你需要触发事件,例如C# code?1234 private void button1_Click(object sender, EventArgs e) { a(); ……
谢谢啦,长知识了。
chopic 2013-03-17
  • 打赏
  • 举报
回复
引用 12 楼 davinciyxw 的回复:
那你先了解一下继承的概念,父类中的什么级别(public, protected,private)的才可以被继承,才可见。 当然还有virtual,override,abstract,interface等几个概念
这些我都有所了解了,也用过一些,不过都只是用class A:class B 这样的,窗体继承的没有用过,麻烦能不能介绍的详细一点或者指点一下在哪里可以找到相关示例。
  • 打赏
  • 举报
回复
引用 10 楼 chopic 的回复:
父类中的事件在子类中也可以调用么?子类需要重写这个事件么,第一次接触继承窗体,有没有例子可以借鉴一下啊~
如果你需要触发事件,例如
        private void button1_Click(object sender, EventArgs e)
        {
            a();
        }
那么你可以把它提取出来,例如
        private void button1_Click(object sender, EventArgs e)
        {
            OnButton1Click();
        }

        protected void OnButton1Click()
        {
            a();
        }
这样就可以调用了。
  • 打赏
  • 举报
回复
我更弄不懂啊
  • 打赏
  • 举报
回复
那你先了解一下继承的概念,父类中的什么级别(public, protected,private)的才可以被继承,才可见。 当然还有virtual,override,abstract,interface等几个概念
chopic 2013-03-17
  • 打赏
  • 举报
回复
引用 9 楼 sp1234 的回复:
引用 6 楼 chopic 的回复:我现在只有窗体没有dll文件,是要先将我已有的窗体生成dll文件在来用它继承么? 我这种设计思想有没有曲解继承的本意呢?求教啊~ 什么叫做“生成dll文件在用它继承”?你没有使用vs吗?你难道是在写低级的java程序? 什么叫做“曲解继承的本意”呢?我不知道你指的具体是什么。
我还在上学啊,最近才开始学习C#的编程,所以很多都不是很懂啊,希望多多解释啦~
chopic 2013-03-17
  • 打赏
  • 举报
回复
引用 8 楼 davinciyxw 的回复:
在父画面中,要做一些属性,方法,事件供子类使用。
父类中的事件在子类中也可以调用么?子类需要重写这个事件么,第一次接触继承窗体,有没有例子可以借鉴一下啊~
  • 打赏
  • 举报
回复
引用 6 楼 chopic 的回复:
我现在只有窗体没有dll文件,是要先将我已有的窗体生成dll文件在来用它继承么? 我这种设计思想有没有曲解继承的本意呢?求教啊~
什么叫做“生成dll文件在用它继承”?你没有使用vs吗?你难道是在写低级的java程序? 什么叫做“曲解继承的本意”呢?我不知道你指的具体是什么。
  • 打赏
  • 举报
回复
在父画面中,要做一些属性,方法,事件供子类使用。
  • 打赏
  • 举报
回复
是的,把父画面做成一个dll,引用这个dll,把新作的画面改为继承自这个父类
chopic 2013-03-17
  • 打赏
  • 举报
回复
引用 5 楼 sp1234 的回复:
在你的vs上工程中,点“添加->新建项->windows form->继承的窗体”!
我现在只有窗体没有dll文件,是要先将我已有的窗体生成dll文件在来用它继承么? 我这种设计思想有没有曲解继承的本意呢?求教啊~
  • 打赏
  • 举报
回复
引用 4 楼 chopic 的回复:
额 这个没有源代码啊 我是有系列的窗体,这些窗体大致的框架相同,只是在数据上和部分控件上有写不同,请问如何能够提取出相同的部分作为基类,在其他窗体中直接继承使用?
在你的vs上工程中,点“添加->新建项->windows form->继承的窗体”!
加载更多回复(4)

110,539

社区成员

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

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

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