UI编辑器更改时,VB.NET立即更新用户控件

时间:2012-07-29 09:07:38

标签: user-controls editor

我在VB.NET(VS 2010)中有一个用户控件继承自picturebox。我还有一个类,它拥有40个左右的控件属性。我还有一个带有属性网格的表单,用作编辑器。单击IDE中控件的“自定义”属性时,将打开编辑器窗体。在表单上有一个“确定”和“取消”按钮,可以保存或放弃更改。

所有这一切都很好,但是当网格中的属性发生变化时,我需要让我的控件“刷新”。属性网格有一个事件,但我不知道如何在控件中调用或调用我的sub来基本上重新绘制控件。如果我直接调用sub,则在关闭编辑器窗体(对话框)之前,控件上不会刷新任何内容。有没有办法让编辑器对话框仍然打开控件重绘/重绘?

谢谢, EluZioN

1 个答案:

答案 0 :(得分:1)

尝试使用调用UI_Editor时传递的Context.Instance。在GetEditStyle覆盖中,传递Context个对象。这包含对调用UserControl的引用。

我这样做(CUSTOM UI_TYPE_EDITOR):

Dim ContextOBJ as MyUserControl

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

contextOBJ = CType(context.Instance, MyUserControl) 

GetEditValue覆盖中,您可以致电ContextOBJ.Refresh,您的UserControl应立即反映任何更改。它对我有用。