В настоящее время проблема редактирования (вернее, отсутствия оного) наследованых элементов управления декларируется MS, как баг, надлежащий исправлению в следующих версиях.
В моей огранизации этот момент был замеченен несколько позже, чем следовало бы, и по факту группа разработчиков выяснила, что откатывать сконвертированный проект весьма дорого. Поэтому решили искать пути.
Моя типовая ситуация – необходимость редактировать свойства колонок в гридах (DataGridView). Выходим из положения следующим образом:
1. Добавляем в сборку новый элемент управления, например MyDataGridView
2. Меняем родителя класса на DataGridView
3. Перед стандартным объявлением класса добавляем следующий атрибут:
[Designer("System.Windows.Forms.Design.ControlDesigner, System.Design")]
Также имеются классы для редактирования других типов контролов.
4. Кладем экземпляр MyDataGridView на форму-родителя FormParent, меняем свойство Modifier на Protected
5. Наследуем FormParent, в потомке редактируем MyDataGridView1, наслаждаемся
Сходная проблема ожидает коллег при наследовании toolstrip’ов. Применяется аналогичное решение.
using System;
..
using System.Windows.Forms;
namespace MyClientLogic
{
[Designer("System.Windows.Forms.Design.ControlDesigner, System.Design")]
public partial class ctrlSlyGrid : System.Windows.Forms.DataGridView
{
public ctrlSlyGrid()
{
InitializeComponent();
}
}
}
ps сорри за возможный баян.