1

首先,我不是全职从事 winform 开发工作,所以不要抨击我太糟糕......

正如标题所描述的那样,在引发和捕获事件后刷新表单上的控件时遇到问题。

在“Form1”上,我有一个 Dockpanel,正在创建两个新表单,如下所示:

Public Sub New()
    InitializeComponent()

    dpGraph.DockLeftPortion = 225
    dpGraph.BringToFront()

    Dim frmT As frmGraphTools = New frmGraphTools()
    Dim frmG As frmGraph = New frmGraph()

    AddHandler frmT.UpdateGraph, AddressOf frmG.RefreshGraph
    frmT.ShowHint = DockState.DockLeft
    frmT.CloseButtonVisible = False
    frmT.Show(dpGraph)

    frmG.ShowHint = DockState.Document
    frmG.CloseButtonVisible = False
    frmG.Show(dpGraph)
End Sub

在 frmGraphTools 类中,我定义了以下委托、事件和按钮单击事件:

Public Delegate Sub GraphValueChanged(ByVal datum As Date)
Public Event UpdateGraph As GraphValueChanged

Private Sub btnSaveMach_Click(sender As Object, e As EventArgs) Handles btnSaveMach.Click
    RaiseEvent UpdateGraph(dtpJobDate.Value.ToString())
End Sub

在 frmGraph 类中,我定义了以下子:

Public Sub RefreshGraph(ByVal datum As Date)
    CreateGraph(datum)
    frmGraphBack.dpGraph.Refresh()
End Sub

我在 frmGraph 表单上有一个 ZedGraph 控件,它应该在单击 frmGraphTools 上定义的按钮时刷新/重绘。一切似乎都正常,frmGraph 中的 RefreshGraph Sub 正在执行,新数据被推送到 ZedGraph 控件中,但是该控件永远不会更新。必须做什么才能使 frmGraph 表单或 ZedGraph 控件正确更新/刷新/重绘?

4

1 回答 1

1

从正确的 frmGraph 实例传递对 RefreshGroup 方法的引用

 AddHandler frmT.UpdateGraph, AddressOf frmG.RefreshGraph

此调用也应由编译器标记,因为您传递的是字符串而不是 Date

 RaiseEvent UpdateGraph(dtpJobDate.Value.ToString())

可能你有Option Strict Off

于 2013-02-06T16:16:30.957 回答