2010-10-29 8 views
5

Я пишу программу в Visual Basic 2010. Это HMI (человеко-машинный интерфейс) и поэтому имеет целую пушку кнопок, которые просто отправляют команды на другие устройства. В результате существует огромная куча обработчиков событий для нажатия кнопок, которые не могут быть разбиты на модули (если только мое понимание модулей не так).Может ли файл Visual Basic (.NET/2010) быть разделен на читаемость?

По существу, я хотел бы иметь возможность перемещать все обработчики событий, например, нажатия кнопок в другой файл. Может ли это быть сделано или важно, чтобы они оставались в «MainWindow.xaml.vb»? (Все мои кнопки находятся в одном полноэкранном окне, некоторые скрыты вкладками).

Спасибо,

--Erik T

+0

Как и когда разбить вещи на модули - это то, что вы снова и снова будете пересматривать. Частичные классы решают вашу проблему, но IMO это не целевая цель частичных классов - добавлены частичные классы, в основном, программный код, сгенерированный программой, может быть в другом файле. – quillbreaker

ответ

13

Вы можете использовать Partial Classes, чтобы разбить определение вашего класса на несколько файлов, которые могут помочь организовать ваш код.

Ссылка, приведенная выше, поможет объяснить, как использовать частичные классы. Следующая ссылка покажет вам VB.NET синтаксис (и как использовать конструктор класса, чтобы разделить вещи):

How to: Split a Class into Partial Classes

+0

Я должен уметь переносить достойную часть моего кода в отдельный файл, подобный этому. Потрясающие! – evilspoons

+0

FWIW, это сработало, но если вы перемещаете обработчики событий в отдельный файл через Partial Classes, дизайнер XAML в Visual Studio 2010 больше не сможет предоставить вам удобную ссылку на обработчик событий через окно «Свойства» (он отображается как пустой, и если вы дважды щелкните по нему, создадите новый пустой обработчик событий ... и затем, скомпилировав, конечно, пожалуйтесь на несколько идентичных подписей.) – evilspoons

3

Вы можете использовать Partial Classes разделить их в отдельные файлы, если это необходимо.

3

Мне нравится использовать регионы, чтобы скрыть код (код фломастер дозы не делать этого любопытное, что так плохо использовать изображение) alt text

Имейте в виду, что это только сокрытие кода в VS файл еще compleatly неповрежденными и компилятор просто игнорировать #Region и #End Region линий

+0

Я использую регионы, НО они действительно не помогают, когда у вас есть 400-футовая длинная страница, на которой вы действительно хотите иметь несколько разделов на разных вкладках Visual Studio. Тем не менее, хороший совет. – evilspoons

+0

ах, правда, это действительно зависит от человека, которого я думаю. – giodamelio

1

Не могли бы вы отделить некоторые функции от пользовательских элементов управления? Возможно даже создать кнопки «на лету» на основе некоторых внешних данных?

1

Для модульности пользовательского интерфейса вы можете исследовать возможности композиций WPF/SL, описанные here, а также с помощниками и примерами here. Но это действительно другая архитектура и может быть основным рефакторингом, если у вас уже много кода.

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

+0

Я действительно использую WPF, но я как бы использую его с мышлением Windows Forms. Я в основном переключился на WPF, поэтому мое приложение будет масштабироваться до разных разрешений экрана с минимальными усилиями. Командование выглядит увлекательно, и взгляды могут помочь мне. Благодаря! – evilspoons

+0

@evilspoons: Добро пожаловать! Я согласен, что переход от Windows Forms к MVVM - большой скачок, но он действительно того стоит. Попробуйте это в небольшом проекте, и вы быстро увидите преимущества, если вы будете искать SO, вы найдете множество историй о MVVM :) – Matthieu