2009-07-14 3 views
1

난 내가 일반적으로 수동을 MOD 안된다고 알고winforms 디자이너 파일을 변경해도됩니까?

Inherits UserControlBase 

내 된 UserControls 디자이너 파일의 각에서 상속 절을 변경 그리고 단순히 본

Class UserControlBase 
    Inherits UserControl 
End Class 

하는 클래스를 만들었습니다 디자이너 파일입니다. 그러나 이런 경우에는 또 무엇을 할 수 있습니까? 이거 괜찮아? 내가 모르는 모범 사례가 있습니까? 같은 끝 (UserControl 확장)을 수행하는 다른 방법이 있습니까?

답변

3

상속 줄을 변경하거나 Namespacing을 추가하거나 Imports/Using 문을 추가 할 때 문제가 발생하지 않았습니다. 이 3 가지 중 하나를 수행해야하는 경우 이러한 요구 사항을 처리 할 수있는 여러 가지 다른 방법을 찾을 수 없습니다.

+0

Chris, 답변 해 주셔서 감사합니다 ... 내가 변경하려는 사항을 구체적으로 언급 했으므로 답변 플래그가 표시됩니다. 이름 및 가져 오기. 좋은 답변. 조엘도 답변 해 주셔서 감사합니다. 내가 찾던 중요한 일은 경험이있는 사람이 자신의 경험을 확인하는 것이 었습니다. 내 제한된 경험에서 네임 스페이스와 수입품을 바꾸는 것이 효과가 있었지만 나는 그것이 붙어있을 지 확신하지 못했습니다. 감사합니다. Seth –

2

C# 프로젝트에서 항상 변경됩니다 ... 디자이너에서 한 번 수행 한 작업을 유사한 양식으로 복제하고 다른 양식으로 동일한 작업을 수행하려는 경우가 가장 쉬운 방법입니다 . Visual Studio는 변경 사항을 완벽하게 읽고 디자이너에게 통합 할 수 있습니다. 나는 그것을 편집하지 말라는 의견이 왜 왜 있는지 모른다. 내 충고는 소스 컨트롤을 사용하고 있는지 확인하고, 편집하고, 테스트하고, 제대로 작동하는지 확인하는 것입니다. 그렇지 않으면 항상 편집을 취소 할 수 있습니다.

1

아니요. 생성 된 파일을 수정하는 것은 결코 좋은 생각입니다.

+0

엄지 손가락의 규칙이지만 디자이너 파일의 내용은 변경하기가 안전합니다. 단, 디자인 타임 호환 수정을 수행해야합니다. 일부 생성 된 파일은 변경 사항 (DataSets의 생성 된 코드 파일과 같음)을 버리지 만 디자이너는 변경 내용을 보존하지만 서식을 다시 배열하고 다시 배열 할 수는 있지만 코드의 본질은 그대로 유지됩니다. – STW

+0

그것은 항상 위험했습니다.디자이너의 가정은 문서화되어 있지 않습니다. 조금 다른 것을하고 변경 사항을 없앨 것입니다. 저는 .NET 1.0 이후로이 문제를 다루었습니다.이 파일을 변경하지 말 것을 강력히 권합니다. –

+0

당신이 디자이너 파일을 어떻게 처리하는지 모르겠지만 수동으로 수정하는 데 전혀 문제가 없었습니다. – john

1

Designer 파일은 매우 간단한 코드입니다. 문제를 복잡하게하기 위해 일반적으로 거기에서 찾을 수있는 유일한 방법은 파일의 상단과 하단에있는 BeginInit/EndInit 호출입니다. 코드 사이에는 꽤 용인이 있습니다.

* 즉, 이 아닌은 런타임에만 실행되는 코드를 넣습니다. 모든 런타임 종속 코드는 디자인 타임에 실패하므로 디자인보기에서 컨트롤을 열려고하면 청크가 끊어집니다. 그것은 당신에게 Red Screen of Darn을주기 위해 사용되었지만 IDE에별로 효과가 없다는 것을 확신하지 못합니다. 그러나 일이 터지면 평범한 트릭이 문제를 해결하지 못하고 사용자 정의 섹션을 제거하십시오.

코드가 런타임이나 디자인 타임에서 실행되는지를 결정하는 방법은 코드가 코드의 일부가 아닌 경우 종종 실패합니다 (코드를 두려워하지 말고, 우리가 갖고있는 어려움을 피하는 것이 좋습니다). 현재 구축 된 솔루션/프로젝트.

그래서 집으로 가져 오려면 간단한 UI 레이아웃/winforms 수정을 디자이너 코드에서 직접 수행하는 것이 좋습니다. 데이터 바인딩 및 외부 종속성 (제 3 자 컨트롤 라이브러리 호출 제외)에는 조심스럽게 접근해야합니다.

관련 문제