2009-03-23 1 views
3

Для управления пользователями с внутренними структурами данных, которые должны быть расположены, является правильным местом для добавления этого кода в метод Dispose в файле .designer.cs или есть какое-то событие или что-то, что мы должны использовать вместо этого?Утилизировать пользовательские элементы управления, действительно предназначенные для редактирования файла .designer.cs?

Редактировать: Это пользовательский элемент управления winforms.

ответ

3

Если вы говорите о WinForms я обычно беру один из двух подходов к решению этой проблемы.

подход 1

Открыть в Form.Designer.cs файл. Внутри сгенерированного метода размещения я добавляю вызов DisposeCore. Затем я возвращаюсь к Form.cs и добавляю метод DisposeCore, который теперь будет вызываться во время удаления. Я добавлю все свои логические схемы в этот метод.

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

подход 2

Добавить обработчик события Form.Disposed и сделать свою Dispose логику в обработчик. Это предпочтительный способ, потому что это поддерживаемая операция и не будет затронута каким-либо созданием дизайнера, с которым вы еще не сталкивались.

+0

Конечно * похлопывание лба *, удаленное событие. Спасибо –

+0

Только InitializeComponent() регенерируется. Что-нибудь еще в этом designer.cs хорошо. (Для VS2005, по крайней мере) – Ken

+0

Не будет ли это проще? –

1

Не могли бы вы пояснить, какие элементы управления? ASP.NET, WinForms?

В ASP.NET вы можете:

protected override void OnUnload(EventArgs e){ 
    base.OnUnload(e); 
    //Unload here... 
} 
1

Или вы можете вырезать и вставить его в основной файл .cs. Этот код не находится внутри «#region Component Designer сгенерированный код», поэтому Studio не пропустит его.

Смежные вопросы