2008-09-23 3 views
1

Windows Forms PropertyGrid 컨트롤에서 사용자 지정 UI 동작을 수행하려고합니다. GridItem에 대한 클릭 및 더블 클릭에 응답하여 상태를 변경할 수 있기를 바랍니다. 예를 들어, 이진 또는 삼항 변수를 상태를 통해 반전합니다.PropertyGrid를 클릭하여 GridItem을 찾는 방법은 무엇입니까?

기본보기에서 typename "PropertyGridView"의 하위를 찾아 해당 Click 이벤트를 연결할 수 있습니다. 오직 문제는 내가 무엇을합니까? 그리드 항목에 마우스 좌표를 매핑하는 함수를 찾을 수 없습니다.

SelectedGridItem이 있지만 유용하지 않습니다. 이 속성을 업데이트하지 않는 컨트롤을 클릭 할 수있는 곳이 많으므로 SelectedGridItem이 업데이트되었다고 가정 할 때 클릭에 응답하면 많은 잘못된 결과가 발생합니다.

상용 속성 그리드 컨트롤을 구입하거나 어떤 종류의 그리드 뷰로 전환하는 것 외에 내가 할 수있는 일이 있습니까? PropertyGrid는 내가 원하는 바로 그 것이다. Reflector를 통해 방황하고이 컨트롤을 사용하여 내가 필요로하는 데이터를 얻을 수있는 매우 비우호적 인 일을하고 있다고 생각합니다. :)

자세한 정보 : 맞춤형 UITypeEditor 클래스 사용에 대해 알고 있고 이미 다른 영역 (색상 선택 도구)에서이 작업을 수행하고 있습니다. 불행히도 맞춤 UI 작업을 수행하려면 추가 클릭 (일부 UI 탐색 또는 드롭 다운)이 필요합니다. 예를 들어, UITypeEditor.PaintValue를 사용하여 체크 상자를 임베드했으며 체크/체크를하기 위해 클릭 만 할 수 있기를 정말로 원합니다.

답변

2

간단한 유형의 값을 뒤집어야하는 경우 속성 표에 열거 값을 표시 할 수 있습니다. 이것은 자동으로 드롭 다운 목록으로 나타납니다. 당신은 당신이 재산 그리드에서 사용자 정의 UI를 만드는 방법을 설명하는 다음 문서를 살펴 할게요 제안 좀 더 영리한 UI 편집기를 작성해야하는 경우 : http://msdn.microsoft.com/en-us/library/aa302334.aspx http://msdn.microsoft.com/en-us/library/aa302326.aspx

당신이 값을 처리하는 경우를 응용 프로그램에서 무언가를 수행하거나 속성 표에서 값을 변경하기 위해 속성 눈금을 변경하면 속성 표를 변경할 때마다 발생하는 OnPropertyValueChanged 을 처리 할 수 ​​있습니다.

고유 한 UI 편집기를 만들면 마우스 클릭 및 마우스 두 번 클릭을 처리 할 필요가 없습니다. UI 편집기는 편집자 또는 모달 편집기를 드롭 다운 할 수 있습니다. 다시 말하지만 위의 기사를 읽으시기 바랍니다. 그들은 꽤 좋다.

+0

UI 흐름의 속도를 높이려고합니다. 드롭 다운이 한 번 클릭하기가 너무 많습니다. 제가 의미하는 바에 대한 좋은 예가 있습니다. bool 속성에 대해 UITypeEditor.PaintValue를 통해 확인란을 삽입했습니다. 확인란을 클릭하여 선택/선택을 취소하고 싶습니다. 두 번 클릭하면 간단한 enum을 통해 나아갈 수 있습니다. – scobi

관련 문제