Абстрактные формы с использованием WinForms - PullRequest
3 голосов
/ 14 января 2011

Я пытаюсь добиться такого же эффекта в приложении WinForms, как мастер-форма в ASP.NET.Сначала я думал о том, чтобы создать базовую форму и объявить ее абстрактной, но компилятор, похоже, не позволяет мне сделать это.

public abstract partial class Master : Form
{
    public Master()
    {
        InitializeComponent();
    }
}

Итак, у меня два вопроса:

  • Почему компилятор не позволит мне сделать это?Я использую неправильный синтаксис или это действительно ограничение.
  • Может кто-нибудь предложить обходной путь или лучший способ сделать это?

РЕДАКТИРОВАТЬ:

InitializeComponent code:

    private void InitializeComponent()
    {
        this.components = new System.ComponentModel.Container();
        this.mainMenu1 = new System.Windows.Forms.MainMenu();
        this.Menu = this.mainMenu1;
        this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
        this.Text = "Master";
        this.AutoScroll = true;
    }

РЕДАКТИРОВАТЬ:

Ошибка заключается в следующем:

The designer must create an instance of type 'Namespace.Master' but it cannot because the type is declared as abstract.

1 Ответ

0 голосов
/ 17 января 2011

Я пытаюсь добиться подобного эффекта в приложении WinForms в качестве мастера форма делает с ASP.NET.

Winforms на самом деле не имеют понятия главной страницы. Я полагаю, что вам лучше всего использовать UserControls и вкладывать свои композиции пользовательского интерфейса.

Может быть, реализовать простой интерфейс, например, сделать доступ к элементам управления немного проще.

public interface IMasterPage
{
 IControlContainer Container { get; }
}

Просто несколько мыслей, удачи в вашем проекте.

...