Може ли файл на Visual Basic (.NET / 2010) да бъде разделен за четливост?

Пиша програма на Visual Basic 2010. Това е HMI (интерфейс човек-машина) и следователно има цял набор от бутони, които просто изпращат команди до други устройства. В резултат на това има огромна купчина манипулатори на събития за щракване върху бутони, които всъщност не могат да бъдат разделени на модули (освен ако разбирането ми за модулите не е грешно).

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

Благодаря,

--Ерик Т


person evilspoons    schedule 29.10.2010    source източник
comment
Как и кога да разделите нещата на модули е нещо, което ще откриете, че ще преглеждате отново и отново. Частичните класове ще решат проблема ви, но IMO не е предвидената цел на частичните класове - частичните класове бяха добавени най-вече, така че кодът, генериран програмно, да може да бъде в различен файл.   -  person quillbreaker    schedule 29.10.2010


Отговори (6)


Можете да използвате Частични класове, за да разделите дефиницията на вашия клас на множество файлове, което може да помогне за организирането на вашия код .

Горната връзка ще ви помогне да обясните как точно да използвате частични класове. Следната връзка ще ви покаже синтаксиса на VB.NET (и как да използвате Class Designer, за да разделите нещата):

Как да: Разделяте клас на частични класове

person Justin Niessner    schedule 29.10.2010
comment
Трябва да мога да мигрирам прилична част от моя код в отделен файл като този. Страхотно! - person evilspoons; 29.10.2010
comment
FWIW, това проработи, но ако преместите манипулатори на събития в отделен файл чрез Частични класове, дизайнерът на XAML във Visual Studio 2010 вече не може да ви даде удобна връзка към манипулатора на събития през прозореца Свойства (той се показва като празен и ако щракнете двукратно, той ще създаде нов, празен манипулатор на събития... и след това компилирането, разбира се, ще се оплаче от множество идентични подписи.) - person evilspoons; 29.10.2010

Разбира се, използвайте частичен клас. Проверете тази статия,

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

person A_Nabelsi    schedule 29.10.2010

Можете да използвате Частични класове, за да ги разделите на отделни файлове, ако е необходимо.

person Reed Copsey    schedule 29.10.2010

Харесва ми да използвам региони, за да скрия код (маркиращият код не прави това нещо, така че ще използвам изображение) alt text

Имайте предвид, че това само крие кода във VS, файлът все още е напълно непокътнат и компилаторът просто ще игнорира редовете #Region и #End Region

person giodamelio    schedule 29.10.2010
comment
Използвал съм региони, НО те наистина не помагат, когато имате страница с дължина 400 фута, която наистина искате да имате няколко секции в различни раздели на Visual Studio. Все пак добър съвет. - person evilspoons; 29.10.2010
comment
ааа, вярно наистина зависи от човека предполагам. - person giodamelio; 30.10.2010

Бихте ли вместо това разделили част от функционалността в персонализирани контроли? Възможно е дори да създадете бутоните в движение въз основа на някои външни данни?

person MarkJ    schedule 29.10.2010

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

За бутоните трябва да можете да използвате команди, които трябва да скрият повечето от вашите манипулатори на събития. Прочетете за командването тук.

person Matthieu    schedule 29.10.2010
comment
Всъщност СЪМ използвам WPF, но някак си го използвам с мислене на Windows Forms. Най-вече преминах към WPF, така че приложението ми да се мащабира до различни разделителни способности на екрана с минимални усилия. Командването изглежда завладяващо, а това с гледките също може да ми помогне. Благодаря! - person evilspoons; 29.10.2010
comment
@evilspoons : Виеre welcome ! I agree that the transition from Windows Forms to MVVM is a big jump, but it really worth it. Try it on a small scale project, and youще видите предимствата бързо, ако търсите SO, ще намерите тонове ресурси за MVVM :) - person Matthieu; 29.10.2010