日期:2014-05-19  浏览次数:20827 次

散分……关于控件继承
有一堆控件,存在类似的流程

构造函数()
{
        CheckQX();//检查权限,没有权限则卸载
        InitializeComponent();//初始化子控件
        BeforeShow();//显示前子控件赋值
}

这3个方法每个控件都不一样,都要重写

另外这些控件都有一个属性值

我打算做一个父控件,大家来继承他,可是不知道这个父控件该怎么写

我这样写,可是不行,执行不到继承控件的方法里面
//父控件
public   class   _Parent   :   UserControl
public   _Parent()
                {
                        CheckQX();
                        InitializeComponent();
                        BeforeShow();
                }
public   virtual   void   BeforeShow()
                {
                }
                public   virtual   void   CheckQX()
                {
                }

子控件
public   _JC_DW()
                {
                        InitializeComponent();
                }
public   override   void   BeforeShow()
                {
                      ……   //重写
                }
                public   override   void   CheckQX()
                {
                        ……   //重写
                }

——————————————————————
以上代码不行,执行不到继承控件的CheckQX()和BeforeShow()
方法里面

难道每个子控件都要在构造里面这样写一遍:
public   _JC_DW()
                {
                        CheckQX();
                        InitializeComponent();
                        BeforeShow();
                }

大家遇到这种情况是怎么做的,请指教,分不够可以加,多谢了

------解决方案--------------------
我想是因为你重写了子类的构造函数,才会导致这个问题的发生。
在子类里面把 构造函数去掉试试!
------解决方案--------------------
我把你的代码贴过来,没有发现问题,可以执行

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication31
{
public class _Parent : UserControl
{
public _Parent()
{
MessageBox.Show( "111 ");
CheckQX();
BeforeShow();
}
p