处理事件 - 表单/控件不更新?

时间:2013-02-06 16:09:52

标签: vb.net winforms zedgraph dockpanel-suite

首先,我没有全职工作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类中,我定义了以下Sub:

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

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

1 个答案:

答案 0 :(得分:1)

从frmGraph

的正确实例传递对RefreshGroup方法的引用
 AddHandler frmT.UpdateGraph, AddressOf frmG.RefreshGraph

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

 RaiseEvent UpdateGraph(dtpJobDate.Value.ToString())

可能你有Option Strict Off