vs 窗体继承

1 最好使用窗体继承器


http://msdn.microsoft.com/zh-cn/library/ybsdta26


WinForm窗体继承是必须的,但是vs的窗体继承不如Delphi那样随心所欲。

2、从父类继承一个窗体后,发现打开子类窗体的设计界面时出错了,错误提示各种各样,原因只有一个:

由于vs的继承是必须先生成组件后,再从组件中继承的,所以当父类窗口有load或shown这类的事件时,继承它的子窗体就会先执行这一类的事件。假如父窗口的load事件中有一些类似连接数据库的操作,则往往会出错而无法设计。

简单的解决方法是在父窗口的load或shown事件中加入:

if (!DesignMode) { 你的代码段..... }

参考资料:http://www.cnblogs.com/batoosai/archive/2006/04/05/367484.html

 

3、屏蔽父窗体的事件

    继承窗体一定有一些例外事件,比如父窗体的FormClosed事件写了日志,而子窗体不希望写日志而是其它操作,这就需要屏蔽父类事件。

    首先把父类的事件改名,如按钮事件改如下(baseform是父类名称,仅用于易区分,可以是任何字符)并改成protected权限

    protected void button1_Click_baseform(object sender, EventArgs e)

    设计器baseform.Designer.cs里面也要对应改一下才能通过编译

    this.button1.Click += new System.EventHandler(this.button1_Click_baseform);

    子类可以正常使用按钮事件,仅在需要屏蔽父类按钮事件时,在子类的构造函数中把对应事件的父类委托去除即可,如下

    public Form1()
    {
            InitializeComponent();
            this.button1.Click -= new EventHandler(base.button1_Click_baseform); //增加这行

    }

   如果你有多层窗体继承,可以如法炮制,只要把各层父类的按钮事件改名即可。

   因为会执行父类按钮事件是父类有事件委托,去除委托就可以了,这比网上说的虚函数重载方法要方便得多。 


WPF(Windows Presentation Foundation)是一种用于开发Windows应用程序的技术框架,它提供了丰富的用户界面(UI)功能和灵活的可视化效果。在WPF窗体(Window)是应用程序的主要界面元素,用于呈现应用程序的内容。 在WPF窗体界面可以通过继承来创建和定制。窗体继承是一种面向对象的编程概念,它允许我们创建一个新的窗体类,该类可以继承自WPF内置的窗体类,例如Window类。通过继承,我们可以使用基类的属性、方法和事件,并添加自定义功能和行为。 使用窗体继承可以提高代码的可重用性和可维护性。我们可以创建一个基类窗体,定义应用程序共享的界面元素和逻辑,然后从这个基类继承子类窗体。子类窗体可以受益于基类的功能,同时还可以添加、修改或覆盖特定于自身的内容窗体继承还可以实现窗体样式的一致性。通过定义一个基类窗体的样式,我们可以确保所有派生的子类窗体继承和使用相同的样式,从而使应用程序的界面具有一致的外观和体验。 继承窗体界面还可以提供更灵活的自定义功能。我们可以重写基类窗体的方法、事件和属性,以满足特定的需求。同时,继承还可以让我们在基类窗体定义一些通用的逻辑和功能,从而简化子类窗体的开发。 总之,WPF窗体界面继承是一种强大的编程技术,它可以提高代码的可重用性、可维护性和一致性。通过继承窗体类,我们可以创建自定义的窗体,并使用基类的功能和属性,同时还可以添加自定义的内容和行为,从而实现更灵活和功能丰富的界面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值