문제

테이블 헤더의 모양을 모방하는 사용자 정의 컨트롤을 작성했습니다. 그것이 그리는 열은 텍스트 문자열 속성과 너비 int 속성이있는 객체 모음으로 제공됩니다. 둘 다 가지고 있습니다 Browsable, Category, DefaultValue 그리고 Description 속성이 추가되었습니다. 디자이너에서는 컬렉션이 편집 가능하며 사용자는 컨트롤과 같이 텍스트와 너비를 설정할 수 있으며 속성은 내가 기대했던대로 영광입니다. 그러나 사용자는 변수의 이름을 편집 할 수 없습니다. 생성 된 코드는 다음과 같습니다.

HeaderMimicColumn headerMimicColumn1 = new HeaderMimicColumn();
HeaderMimicColumn headerMimicColumn2 = new HeaderMimicColumn();
HeaderMimicColumn headerMimicColumn3 = new HeaderMimicColumn();
...

사용자가 디자이너에서 열에 사용되는 변수의 이름을 지정할 수 있도록 만들 수 있습니까? 그렇다면 어떻게?

편집 : 명확히하기 위해 HeaderMimicColumn 파생되지 않습니다 System.Windows.Forms.Control, 그것은 두 가지 속성과 변화 할 때 불이 붙는 한 쌍의 사건을 가진 일반 클래스 일뿐입니다.

아마도 컬렉션에도 DesignerSerializationVisibility 로 설정 Contents.

도움이 되었습니까?

해결책

비 성분 객체가 DesignerSerializationVisibility.Contents 메커니즘, 해당 컬렉션의 각 객체에는 별도의 ID가 없습니다. 그것은 단순히 부모 컬렉션의 일부입니다. 따라서 말 그대로 별도의 개체로 존재하지 않기 때문에 이름을 설정할 수 없습니다.

당신이 원한다면 HeaderMimicColumn 컬렉션의 일부가되고 별도로 주소 지정 가능 (ListView의 열)을 위해서는 최소한이를 도출해야합니다. System.ComponentModel.Component. 그런 다음 가져올 다른 문제를 다루십시오 :)

다른 팁

사용자는 이미 다음을 수행하여이를 수행 할 수 있어야합니다.

  1. 디자이너에서 F4를 누르십시오 (속성 창을 가져옵니다)
  2. Combobox 드롭 다운에서 HendermimicColumn1을 선택하십시오
  3. 이름 필드를 변경하십시오
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top