저는 처음에는 비어있는 ComboBox가 포함 된 간단한 UserControl을 가지고 있습니다. 해당 CB에 대한 설정자는 항목을 항목에 추가하고 getter는 선택한 항목을 반환합니다. 이 UC를 Form에 추가 할 때 디자이너는 비어있는 CB에 대한 getter를 자동으로 호출합니다. 항목으로 CB를 채우는 방법은 나중에 호출됩니다. 코드에서 "어지럼 쳐서"이 문제를 우회하는 한 두 가지 방법을 생각해 볼 수 있습니다. 그러나 시작하기 전에 디자이너가 getter 메서드를 호출하는 것을 막을 수있는 방법이 있는지 물어보고 싶습니다. 아마도 Browsable 또는 Bindable과 비슷한 속성을 가지고 있을까요?디자이너가 getter (VS 2008, WinForms)를 호출하지 못하도록합니다.
답변
이 게터가 어떻게 생겼는지는 분명하지 않습니다. 그러나 디자이너가 런타임시에만 사용해야하는 속성을 직렬화하지 않도록해야합니다. 다음 속성을 사용하십시오.
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[Browsable(false)]
public int SomeProperty {
//etc...
}
이 시도 들으은 :
public ListBoxItem MyProperty
{
get
{
if (this.DesignMode)
{
return new ListBoxItem("empty");
}
else
{
return comboBox1.SelectedItems[0];
}
}
}
게터는 여전히 호출됩니다,하지만 당신은 여기에서 반환되는 것을 제어 할 수 있습니다.
또는 나는 게터 위에 [Browsable (false)]
속성을 넣는 것이 효과가있을 것이라고 생각하지만 잘 모르겠습니다.
내 코드가 나쁜 것 같습니다. 나는 CB의 선택된 지표의 변화를 등록하는 사건이있다. 디자이너가 getter를 호출하면 이벤트가 발생하고 선택한 항목을 허용하는 메서드가 예외를 throw합니다 (false 유형). 물론, 제시된 항목이 올바른 유형인지 여부를이 메소드에서 확인할 수 있습니다. 하지만 디자이너에게서 게터를 단순히 숨길 수 있는지 또는 내 요구가 나쁜지에 대해 알고 싶습니다. – LLEA
가끔은 컨트롤을 디자이너에서 정상적으로 작동시키는 것은 어렵지만 폼에 콤보 상자를 사용하는 것은 꽤 정상적이므로이 문제가 발생하는 이유를 정확히 알지 못합니다. 간단한 해결책은 런타임에 콤보 상자에만 변경 이벤트를 첨부하는 것입니다. load 이벤트에서 디자이너에서 해당 이벤트를 선택하고 두 번 클릭하는 대신'cb.onChange + = new EventHandler ... '와 같은 것을 넣을 수 있습니다. 너의 노력을 위해 – MusiGenesis
xx. 나는이 부분을 사용할 수 있었다 .DesignMode. 게다가 당신 말이 맞아. 그 문제를 우회하는 방법은 여러 가지가 있지만 호기심이 많았습니다 ... 이제 대답이 나옵니다. – LLEA
- 1. Getter 속성은 아무도 호출하지 않고 실행됩니다.
- 2. VS 2008
- 3. getter/setter VS public vars의 이점?
- 4. iframe 포스트 백이 부모에서 jQuery 'ready'함수를 호출하지 못하도록합니다.
- 5. 자바 코드는 한 클래스에서 다른 클래스로 메소드를 호출하지 못하도록합니다.
- 6. vs 2008 express : 등록
- 7. silverlight 4 vs 2008
- 8. VS 2008 솔루션 자동마다
- 9. ASP.Net + MVC + VS 2008
- 10. 설치 VS 2008 Prof
- 11. MSI installer VS 2008
- 12. WPF를 사용하여 WinForms를 구현합니까?
- 13. VS 2008 - 개체가 사라지고 있습니까?
- 14. 권장 VS .NET 2008 Obfuscater?
- 15. 작성된 VS 2008 IDE는 무엇입니까?
- 16. VS 2008 단위 테스트를위한 조건문
- 17. VS 2008 매크로의 단축키는 무엇입니까?
- 18. vs 2005 및 vwd 2008
- 19. VS 2008 + 인텔 포트란 질문
- 20. VS 2008 오른쪽 Intellisense 교수형
- 21. vs 2008 623 컴파일러 오류
- 22. VS 2008 누락 속성 옵션
- 23. VS 2008 Express - clickOnce 질문
- 24. 단위 테스트 및 VS 2008
- 25. VS 디자이너가 컨트롤의 지역화 된 값을 업데이트하지 못하게하는 방법은 무엇입니까?
- 26. VS 디자이너가 이미 존재하는 DataGridview 열의 코드를 생성하지 않게하려면 어떻게해야합니까?
- 27. 약 22 초 동안 Visual Studio 2008 디자이너가 응답하지 않습니다.
- 28. Visual Studio 2008 WPF 디자이너가 내 양식을로드하지 않습니다.
- 29. Winforms를 사용하는 Viewbox 대안
- 30. winforms를 사용하여 소프트웨어 개발
thx ... 그게 내가 찾는거야. 그것은 작동합니다. 디자이너는 더 이상 getter 메서드를 호출하지 않습니다. – LLEA