【问题标题】:VB.NET Update User Control Immediately When UI Editor ChangesVB.NET 在 UI 编辑器更改时立即更新用户控件
【发布时间】:2012-07-29 09:07:38
【问题描述】:

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

所有这些都可以正常工作,但是当网格中的属性发生更改时,我需要让我的控件“刷新”。属性网格对此有一个事件,但我不知道如何在控件中调用或调用我的 sub 来实质上重新绘制控件。如果我直接调用子控件,直到我关闭编辑器表单(对话框)之后,控件才会刷新。有没有办法让控件在编辑器对话框仍然打开的情况下重绘/重绘?

谢谢, 洗脱

【问题讨论】:

    标签: user-controls editor


    【解决方案1】:

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

    我做这样的事情(自定义 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 应立即反映任何更改。它对我有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-22
      • 2023-04-03
      • 2023-04-02
      • 1970-01-01
      • 2010-10-15
      • 1970-01-01
      相关资源
      最近更新 更多