Можно ли разделить файл Visual Basic (.NET / 2010) для удобства чтения? - PullRequest
5 голосов
/ 29 октября 2010

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

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

Спасибо

- Эрик Т

Ответы [ 6 ]

13 голосов
/ 29 октября 2010

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

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

Как: разделить класс на частичные классы

3 голосов
/ 29 октября 2010

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

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

3 голосов
/ 29 октября 2010

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

3 голосов
/ 29 октября 2010

Конечно используйте частичный класс.Проверьте эту статью,

http://visualbasic.about.com/od/usingvbnet/a/partclses.htm

1 голос
/ 29 октября 2010

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

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

1 голос
/ 29 октября 2010

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

...