Я пам’ятаю, як вивчив VB4 і перетягнув кнопку на форму, двічі клацнув на цій кнопці та ввів код у цей обробник подій, з яким я щойно був магічно благословлений. Починаючи від QBASIC, я був в захваті від "V" у "VB", візуальний дизайнер був буквально найкращим справою, оскільки нарізав хліб.
Звичайно, ти міг би зробити все це програмно, але магія "V" була такою привабливою, що ти просто не міг не перетягнути цю кнопку. Нас заохотили пройти цей маршрут.
Але потім кілька років тому я почав дізнаватися про C # та рамки .net і був захоплений тим, що все, що я думав, що знав, щойно вийшло з вікна. У VB6 відбувається багато магії, яка повністю розкрита в .net: візьмемо, наприклад, конструктори та InitializeComponents
метод. В останньому ви знайдете всі контрольні екземпляри, які ви перетягнули з панелі інструментів, усі події, які ви зареєстрували, та властивості, які ви встановили в дизайнері.
І це добре ... я здогадуюсь. Просто я відчуваю, що я не "володію" тим, що відбувається, цей код, який я можу змінити лише за допомогою дизайнера, дратує чорт з мене. Кожен раз, коли ви копіюєте кнопку, яка пише "Гаразд" з однієї форми в іншу (іноді разом із братом "Скасувати"), ви насправді копіюєте код, і це гріх, чи не так? СУХО, не повторюйте себе, каже Папа .
Якщо релігії та школи думки, окрім об'єктивності, не повинні ми замість цього отримувати форми з базових форм, а кнопка "Ок" (та всі її друзі) жити на базовій формі? Щось на зразок a, FormBase
з якого походить a DialogFormBase
; всі класи, створені в найкоротші терміни ... ввівши код. Кнопки створюються залежно від способу інстанції класу (тобто аргумент перерахунку конструктора визначає, які кнопки потрібно створити), елементи управління розміщуються всередині розташування розділених панелей та панелей компонування потоку, введених у форму якContent
що вписується в основну панель вмісту. Хіба це не те, що ASP.net робить з головними сторінками та заповнювачами вмісту? Я отримав форму, коли мені потрібна нова "головна сторінка", але ця нова "головна сторінка" все ще походить від базового класу форм, тому візуальні зображення є узгодженими для всієї програми.
Для мене це набагато більше використання коду, ніж будь-що інше, що я коли-небудь робив з дизайнером в WinForms, і це було навіть не важко, і код не захаращений методом 200 рядків, над яким я не маю ніякого контролю, я можу розміщуйте коментарі там, де мені подобається, дизайнер їх не переписує. Я думаю, що це лише питання шаблонів та архітектури, саме це і привело мене до цього посилання: Найкращий дизайн для форм Windows, який матиме спільний функціонал , де я зрозумів, що я був на місці, крім відповіді там, підказує саме те, що я робити, але це радить не успадковувати форми через міркування дизайнера. Це частина, яку я не розумію .через міркування структури коду, особливо що стосується форми та спадкового контролю, що я не бачу причин уникати іншого, крім того, що це порушує дизайнера .
Всі ми не можемо бути просто ледачими, і яку частину я пропускаю?