2010-11-18 3 views
0

). 속성 편집기에서 팝업 편집기를 호출 할 때 팝업 편집기가 표시되는 기본 크기를 어떻게 설정할 수 있습니까?PropertyGrid 기본 팝업 편집기 시작 크기 설정 (WinForms)

이것은 Windows Forms의 등록 정보 표 편집기에 익숙한 모든 사용자를위한 것입니다.

List 속성을 Grid에 던지면 작은 [...] 버튼이 표시됩니다.이 버튼을 누르면 기본 하위 값 편집기가 나타납니다. 실제로 다른 유형의 객체에 편집기를 사용하지만,이 예제를 통해 내가 언급 한 것을 알 수 있습니다. 그리고 여기에 링크가 살고 적어도 때까지 사진입니다 :

http://www.perpetuumsoft.de/sf/en/ims/rssSilverlight/GetStart/image032.jpg

답변

1

나의 이해는 (모두 모달 및 비 모달 편집자)가 표시되는 컨트롤의 변덕까지 완전히 것입니다. 관련 UITypeEditor 큰 양식을 선택하는 경우, 그 생성

유일한 방법은 그 자신의 UITypeEditor을 정의하고, 때로는 (관련된 유형 TypeDescriptor.AddAttributes(...)와 수을 그것을 연결하는 것입니다 변경 ... 큰 것 런타임과 같은 양식을 보여주고 싶었지만 표시하기 전에 크기를 조정합니다.

+0

안녕하세요 마크와 컬렉션 속성을 장식 할 예입니다. 대답 해줘서 고마워. 이 속성 표는 내 신경을 얻고 있습니다. 내가해야 할 일이있을 때 작은 속성이나 콜백을 제공해야만 기본 편집기를 약간 사용자 정의 할 수 있도록 무언가를 처음부터 코딩해야한다는 사실이 싫다. 이제 위의 이미지에서 볼 수 있듯이 팝업 에디터에서 나타내는 모든 객체의 새 인스턴스를 만드는 "추가"버튼이 있습니다. 무엇이 나를 죽이는 MAIN 객체에 대한 참조를 얻지 못한다는 것입니다 (모달 UI가 호출 된 곳에서 하나). Arrrrgh !!! – Axonn

+0

마크, 그 다른 문제에 대해 알고 있습니까? 아시다시피 ... "추가"를 클릭하면 PropertyGrid 객체가 만들어지면 해당 객체에 대해 매개 변수없는 생성자가 호출됩니다. 저기서 원래의 객체에 대한 참조를 어떻게 얻을 수 있습니까? ITypeDescriptorContext는 아무런 쓸모가 없습니다 :: - ("Instance"필드는 현재 편집중인 Property를 가리키며 어떠한 방법으로도 해당 속성의 ** 소유자 **에게 접근 할 수 없습니다. – Axonn

+0

다음과 같지 않습니다 : : -/ – Axonn

0

당신은 표준 System.ComponentModel.Design.CollectionEditor에서 상속하여이를 다음 CreateCollectionForm 재정에서 원하는 크기를 설정할 수 있습니다.

요 장식 ur 컬렉션에서 사용자 정의 컬렉션 편집기를 사용할 수 있습니다. 다음은

class FullscreenCollectionEditor : System.ComponentModel.Design.CollectionEditor 
{ 
    protected override CollectionForm CreateCollectionForm() 
    { 
     var editor = base.CreateCollectionForm(); 
     editor.WindowState = System.Windows.Forms.FormWindowState.Maximized; 
     return editor; 
    } 

    public FullscreenCollectionEditor(Type type) : base(type) 
    { 
    } 

} 

전체 화면

에서 컬렉션 편집기를 시작하고 다음 [Editor(typeof(FullscreenCollectionEditor), typeof(UITypeEditor))]

public class MyModel 
{ 

    [Editor(typeof(FullscreenCollectionEditor), typeof(UITypeEditor))] 
    public List<FileModel> Files { get; set; } 

}