Winforms应用程序模板

时间:2012-10-01 10:41:18

标签: winforms templates

我正在尝试使用通用模板创建一个Winforms应用程序,即所有表单都将继承一个预定义的模板,用于新建,保存,编辑,删除按钮和一些通用图像,以及我将手动放置继承表单的其他内容。

如何实现这一目标的任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:1)

我会创建一个新的表单作为类似模板的表单并强制它实现一个接口,在我的下面的示例中,我命名了接口IApplicationWindow,并声明了要实现的常用方法由子类。

除了你提到的常用控件之外,我还会使用类似模板的形式,所有应该在所有窗口中常用的东西,比如记录助手类等等。

假设我们已经定义了一个名为IApplicationWindow的接口,那么类似模板的表单将如下所示:

public partial class TemplateForm : Form, IApplicationWindow
{
    // Place here as protected class members all object instances
    // that are common to all your forms, like helper class for logging
    // purposes or security delegates.
    [...]

    public TemplateForm()
    {
        InitializeComponent();
    }

    #region IApplicationWindow interface implementation

    public virtual void Save()
    {
        // Do nothing unless you need common behavior.
        // Leave extenders implement the concrete behavior.
    }

    public virtual void Edit()
    {
        // Do nothing unless you need common behavior.
        // Leave extenders implement the concrete behavior.
    }

    [...]

    #endregion
}

这就是扩展类似模板的表单的形式(注意您必须覆盖方法以提供特定的实现):

public partial class AnApplicationWindow : TemplateForm
{
    public AnApplicationWindow()
    {
        InitializeComponent();
    }


    public override void Save()
    {
        base.Save();
        // Implement specific behavior here
    }

    public override void Edit()
    {
        base.Edit();
        // Implement specific behavior here
    }

    [...]

}

最后,我会仔细地将常用控件放在模板表单的UI中,这样如果你调整扩展表单的大小,控件就会被放置(正确使用锚点)。