2011-02-07 5 views
0

일부 변수를 기반으로 레이아웃에 영향을주는 내 InitializeComponent에 일부 조건이 있습니다. 불행히도 응용 프로그램을 다시 작성할 때마다이 코드가 이전 상태로 되돌아갑니다. Designer 인터페이스를 기반으로이 코드가 다시 생성됩니까? 이 일을 막을 수있는 방법이 있습니까?IntializeComponent 계속 덮어 씁니다

+0

실제로 이것은 의도적으로 설계된 동작입니다. 코드를 다른 곳에 두어야합니다. 조건부 속성 설정을 많이해야하는 경우 디자이너를 전혀 사용하지 않을 수도 있습니다. –

답변

2

예, InitializeComponent은 완전히 IDE에서 생성됩니다. 그것도 망치려고하지 마라. 당신이 추가/일부 컨트롤을 제거 할있어서, 조건부 논리를InitializeComponent에 자동 생성 된 통화 후 컨트롤의 생성자 에서 그것을 할 경우

.

조건부 항목이 디자인 타임에 사용 또는 사용되지 않는 기능에 의존하는 경우 (예 : 다른 사람이 사용자의 컨트롤을 사용하고 디자인에서 설정하려고하는 컨트롤이 동작하는 방식에 영향을주는 속성을 제공 한 경우) 시간), 생성자는 디자인 뷰에서 사용자가 선택한 시간까지 이미 실행 되었기 때문에 생성자를 사용하면 작동하지 않습니다. 이 경우 OnLoad 메소드를 덮어 쓰고 거기에 로직을 입력하십시오 (또는 Load 이벤트 자체를 처리하는 등 여러 가지 변형이 있습니다.이 방법을 사용하면이 스킨을 사용할 수 있습니다).

+0

컨트롤을 사용하는 다른 개발자를 계획하는 경우 이벤트를 처리하는 것보다 OnLoad를 오버라이드하는 것이 좋습니다. 그러나 철저하고 정확한 대답은 +1입니다. –

관련 문제