2010-09-03 4 views
4

У нас есть большой класс формы, которые мы хотели бы разделить на куски с помощью частичного класса подходДополнительные частичные классы для формы

Это может быть сделано вручную внести изменения в файл проекта и добавление MainFormPN.vb Стажер

<Compile Include="MainForm.vb"> 
    <SubType>Form</SubType> 
</Compile>  
<Compile Include="MainForm.Designer.vb"> 
    <DependentUpon>MainForm.vb</DependentUpon> 
    <SubType>Form</SubType> 
</Compile> 
<Compile Include="MainFormPN.vb"> 
    <DependentUpon>MainForm.vb</DependentUpon> 
</Compile> 

Проблема с этим подходом заключается в двойном щелчке по этому элементу в IDE VS2008, который показывает новую пустую форму, а не интерфейс MainForm. Похоже, VS2008 не поддерживает несколько частичных классов для форм. Можно ли это сделать?

ответ

2

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

Тот факт, что конструктор Windows Forms показывает пустую форму, когда вы идете открывать частичный класс, - это просто идиосинкразия Visual Studio. Пока вы дважды щелкаете по «основному» файлу формы (в вашем случае, MainForm.vb), он будет отображаться правильно.

Другими словами, не беспокойтесь; код из ваших файлов с частичным классом действительно относится к одному классу.

+0

+1, не возитесь с сантехникой, у вас будет влажный пол. –

+1

@ HansPassant, я делаю почти всю свою работу в одном классе, и это беспорядок. Но он работает, и когда вы используете другие классы для разделения работы, он просто идет медленнее, и я должен вызывать классы, которые просто раздражают. Но в конце концов, это работает, так есть ли проблема, кроме большого кода в одном месте? – Zerowalker

0

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

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