наследование от формы в C # - PullRequest
3 голосов
/ 22 марта 2011

У меня есть пара уже существующих форм, скажем, CUSTOMERS и ORDERS, и я планирую создать еще полдюжины.В C # они являются частичными классами.

         public partial class CUSTOMERSFORM : Form
         public partial class ORDERSFORM : Form

Теперь я решил, что было бы хорошо, если бы некоторые общие свойства и методы совместно использовали все эти формы (не функции графического интерфейса, а некоторый клейкий код для моего промежуточного программного обеспечения), которые могли бы быть унаследованы.

Могу ли я просто создать MyBaseForm без визуальных компонентов, установить эти свойства и методы в MyBaseForm, а затем изменить существующий код следующим образом?

        public partial class CUSTOMERSFORM : MyBaseForm
        public partial class ORDERSFORM : MyBaseForm

Если вышеизложенное возможно,все визуальные проекты, которые я добавил в существующие формы клиентов и заказов, останутся такими же, как они?Будет ли что-нибудь сломано (при условии отсутствия конфликта имен методов или свойств)?

РЕДАКТИРОВАТЬ: MDI бросает какие-нибудь кривые шары здесь?

Спасибо

Ответы [ 3 ]

3 голосов
/ 22 марта 2011

Да, это поддерживаемый сценарий и количество функций базы кода WinForms.

public class MyBaseForm : Form {
  public string MyProperty { get; set; }
}

public partial class CUSTOMERS : MyBaseForm {
  ...
}

public partial class ORDERS : MyBaseForm { 
  ...
}
1 голос
/ 22 марта 2011

Вы можете создать простой класс в своем приложении, который наследуется от System.Windows.Forms.Form.

Как вы сказали, вы можете наследовать текущие формы из нового класса и реализовывать свойства. Визуальные компоненты форм останутся неизменными, так как они указаны в конструкторе существующих форм.

public class CustomForm : System.Windows.Forms.Form
{

  //Declaring a protected property will give access ot it for inherieted forms only
  protected object YourProperty
  {
     get;set;
  }

}
0 голосов
/ 22 марта 2011

Да, просто попробуйте добавить Form1: Form в проект, а затем создайте простой класс Class1: Form1. Унаследованные формы также можно использовать для наследования форм от других сборок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...