C# WinForms in MSVC

Статус: Offline
Реєстрація: 03.09.2007
Повідом.: 1048
Сразу оговорюсь - C# и программирование под Windows на стадии изучения...поэтому просьба пинать без фанатизма...

Начал с того, что создал проект со стандартной Win-формой в VS 2008 Express. Студия сгенерила свой код. Приложение работает. Я добавляю к Вин-форме элементы управления через конструктор (designer) Вин-форм VS (посредством драг-энд-дроп с панели инструментов) - как следствие, VS добавляет код инициализации этих элементов.Часть кода студии заключен а в
Код:
#region Windows Form Designer generated code
//код
...
#endregion
, часть кода - за этой областью. Я изменяю свойства элементов управления вручную, не через конструктор (designer) Вин-форм, код заключен в
Код:
#region Windows Form Designer generated code
//код
...
#endregion
, по итогу студия мои изменения убивает.

Теперь вопрос:
1. Есть предположение (:)), что студия делает все верно и я просто не сталкивался с этим раньше. так ли это или же имеет место глюк (может я и ошибаюсь, но какая разница как изменить функционал через дизайнер или руками) ?

2. Панацея от всего этого:
а) писать всю инициализацию руками ?
б) пользоваться только конструктором студии при редактировании всех элементов управления ?
в) есть ли золотая середина между п. а и п.б ?
 
1. Если ты в сгенеренном коде что-то меняешь руками студия будет менять всё обратно в соответствии с правилами дизайнера (кажись это даже в каментах дето пишется), а вот добавить туда своего чего то можно, студия это не удалит! Но менять в созданных с помощью дизайнера элементах управления что-либо ручками нет смысла, т.к. студия все вернет обратно и да, это намеренно!
2. Зачем писать руками всё? То, что тебя устраивает не меняй, а если что-то не устраивает то напиши за пределами InitializeControls(), например создай свою процедуру MyInit() и в ней опиши все что хочешь поменять, студия это не тронет. Это ИМХО и есть золотая середина ;).
 
какой смысл менять свойства объектов через код, если это можно сделать через окно свойств?
 
какой смысл менять свойства объектов через код, если это можно сделать через окно свойств?

Ну в ASP.NET, к примеру, намного удобней писать код, чем пользоваться дизайнером страниц.
 
какой смысл менять свойства объектов через код, если это можно сделать через окно свойств?

такой что возможности проперти едитора не позволяют много чего сделать, а вот через код можно все. Например не все свойства видны в проперти едиторе. А по поводу автосгенеренного кода тут правильно написали - автогенеренный код не следует модифицировать, напиши свой метод и вызови его в конструкторе после InitializeComponent, а содержимое InitializeComponent не трогай. Если не нравится InitializeComponent, удали его вызов из конструктора и добавь вызов своего варианта, но тело самого метода не трогай.
 
В данном случае ТС пишет про WinForms

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

на этот счет спор бесполезен :). Реализованы оба способа. Оба способа работают и ими пользуются.

Для себя необходимую информацию почерпнул. все ответившим - спасибо.
 
Назад
Зверху Знизу