2012-07-29 4 views
0

그림 상자에서 상속 된 VB.NET (VS 2010)의 사용자 컨트롤이 있습니다. 또한 컨트롤을위한 40 개 정도의 속성을 보유하는 클래스가 있습니다. 또한 편집기로 사용되는 속성 표가있는 양식이 있습니다. IDE에서 컨트롤의 "사용자 지정"속성을 클릭하면 편집기 양식이 열립니다. 양식에는 변경 사항을 저장하거나 취소하는 확인 및 취소 버튼이 있습니다.UI 편집기가 변경 될 때 즉시 VB.NET 업데이트 사용자 컨트롤

이 모든 것이 정상적으로 작동하지만 격자에서 속성이 변경되면 "새로 고침"컨트롤이 있어야합니다. 속성 표에는 이에 대한 이벤트가 있지만 컨트롤을 본래대로 그리기 위해 컨트롤에서 내 sub를 호출하거나 호출하는 방법을 모르겠습니다. 서브 폼을 직접 호출하면 에디터 폼 (대화 상자)을 닫을 때까지 아무 것도 컨트롤을 새로 고칩니다. 편집기 대화 상자를 다시 열어/다시 그릴 수있는 방법이 있습니까?

감사합니다, EluZioN

답변

1

당신의 UI_Editor가 호출 될 때 전달됩니다 Context.Instance를 사용해보십시오. GetEditStyle 재정의에서 Context 개체가 전달됩니다. 이것은 UserControl 호출에 대한 참조를 보유합니다.

Dim ContextOBJ as MyUserControl 

Public Overrides Function GetEditStyle(ByVal context As System.ComponentModel.ITypeDescriptorContext)...... 

contextOBJ = CType(context.Instance, MyUserControl) 

GetEditValue 재정에서, 당신은 ContextOBJ.Refresh를 호출 할 수 있습니다 당신은 UserControl 즉시 변경 사항을 반영해야합니다

나는이 (사용자 정의 UI_TYPE_EDITOR) 그런 짓을. 그것은 나를 위해 작동합니다.

관련 문제