2013-03-22 3 views
-5

В Visual Studio я могу построить мое приложение окна, перетащить кнопки и т.д.Добавление пользовательского кода в приложения Windows UI

И код автоматически сгенерированных и кладу MainForm.Designer.cs файл.

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

enter image description here

Вопрос в том, как создать пользовательский код себя и получить доступ к кнопкам и компоненты, которые я создал с drag n drop. Я не могу создать свои собственные файлы под значком MainForm.

Основной Program.cs, где это лежит:

MainForm form = new MainForm(); 
Application.Run(form); 

я могу получить доступ к форме, но я не могу получить доступ к любому компонентов. Поэтому я должен был сделать все свои компоненты частным для публики, это нормально? И везде я хочу получить доступ к этим, я должен передать переменную form в качестве параметра.

Есть ли хороший способ создания пользовательских материалов, правильно ли я делаю, получая переменную формы от Program.cs, а затем передавая ее другим классам? Тем не менее, почему созданный автоматически материал тесно связан под значком MainForm.cs, но я не могу добавить туда свой код.

+0

простой способ генерировать код для чего-то вроде нажатия кнопки - это двойной щелчок на кнопке в дизайнере (где вы перетаскиваете), и это приведет вас к генерируемому коду. –

+0

@DROPtableusers Я знаю, что этот код есть, но я не могу добавить свои собственные классы. – Jaanus

+2

Это супер базовый вопрос визуальной студии. Я думаю, вам нужно изучить некоторые учебные пособия. – JeremyK

ответ

2

Вы можете добавить свой собственный код в код позади файлов, но этот код будет обычно обработчики для событий пользовательского интерфейса для управления формой. Я думаю, что вы повесили трубку, это тот факт, что MainForm - это класс, а не проект. Вы добавляете свои классы в проект, который содержит его, а затем в обработчиках событий для класса формы вы должны создать экземпляр любого класса, к которому вы пытаетесь получить доступ, и передать соответствующие значения из формы методам, которые вам нужно вызвать. Таким образом, ваши свойства могут оставаться закрытыми, поскольку ничто за пределами формы не пытается связаться с ними. Хотя это не запрещено, я не люблю передавать экземпляры формы вокруг как параметры.

+0

Добавленный код в сгенерированные файлы не рекомендуется, так как вы потеряете все это, если файлы будут повторно сгенерированы. –

+0

Согласовано. Я имел в виду код за файлом, а не сгенерированный файл. Я буду редактировать, чтобы уточнить. –

+0

Могу ли я также сказать, что такие вещи особенно удобны для «частичных классов». :) –

0

В Visual Studio Design вид, у вас должно быть окно Properties. Там вы увидите, что он будет обновляться каждый раз, когда вы выберете элемент управления в представлении Design. На панели Properties есть значок с молнией с текстом наведения, указывающим Events.

Если вы просматриваете те элементы, которые отображают и дважды щелкают по Event, на которые вы хотите написать код, вы будете переведены в код с кодом, сгенерированным для доступа к этому Event.

Но то, что вы не должны сделать, это попытаться запустить форму из Program.cs, логики галстука модулей для кода будут генерироваться в MainForms.cs, а не Program.cs, а оттуда, вы можете получить доступ ко всем свойствам в private контекст.

enter image description here

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