首先,我没有全职工作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控件正确更新/刷新/重绘,必须做些什么?
答案 0 :(得分:1)
从frmGraph
的正确实例传递对RefreshGroup方法的引用 AddHandler frmT.UpdateGraph, AddressOf frmG.RefreshGraph
此调用也应由编译器标记,因为您传递的是字符串而不是日期
RaiseEvent UpdateGraph(dtpJobDate.Value.ToString())