Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > Проблема наследования форм с DataGridView


Автор: Fomaa 9.2.2009, 12:30
Привет,
на родительской форме лежит DataGridView (public). Делаю наследование от этой форме, в результате в дизайнере студии нельзя ничего менять в гриде, только кодом. Кто знает как помочь?

Автор: Лен 9.2.2009, 14:23
1) Попробуй нужные изменения занести в OnLoad формы - проще всего;
2) Можно сделать несколько virtual или abstract методов в родительской форме, которые будут определять внешние свойства или поведения грида, и реализовать их в формах-наследниках - красиво с точки зрения ООП;
3) Если охота сразу увидеть внеснные изменения -  ручками поковыряйся в дизайнере формы в методе InitializeComponent (а вот это уже чревато последствиями).

Автор: Fomaa 9.2.2009, 18:49
2)
abstract - дизайнер форм не позволяет работать с формами, которые наследованы от абстрактных форм.
virtual - сейчас так и делаю, но хочется видеть еще на этапе дизайна.
3)
пробовал InitializeComponent, но в дизайнере изменений не вижу.

бонально не хочет показать в гриде на этапе дизайна типизированный датасет  smile 

Автор: wendigo 29.3.2009, 03:38
делай так:
создай новый класс

Код

    [Designer("System.Windows.Forms.Design.ControlDesigner, System.Design")]
    public class myDataGridView : DataGridView
    {
    }


а потом на родительской форме(базовой - от которой наследуется) в InitilizeComponents() 
смени тип датагридвью на твой: 
Код

protected myDataGridView dataGridView1;



и подставь свой конструктор  в секции инициализации вместо того, что был

Код

this.dataGridView1 = new myDataGridView();


кста этот косяк не только с датагридвью
еще с менюстрип, тулстрип.. и в том же духе


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)