디자이너에서 객체의 변수 이름을 편집 할 수있는 방법은 무엇입니까?
-
06-07-2019 - |
문제
테이블 헤더의 모양을 모방하는 사용자 정의 컨트롤을 작성했습니다. 그것이 그리는 열은 텍스트 문자열 속성과 너비 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.
그런 다음 가져올 다른 문제를 다루십시오 :)
다른 팁
사용자는 이미 다음을 수행하여이를 수행 할 수 있어야합니다.
- 디자이너에서 F4를 누르십시오 (속성 창을 가져옵니다)
- Combobox 드롭 다운에서 HendermimicColumn1을 선택하십시오
- 이름 필드를 변경하십시오