1

最初に、私はフルタイムで winform 開発を行っていないので、私を悪く言わないでください...

タイトルが示すように、イベントが発生してキャプチャされた後、フォームのコントロールを更新する際に問題が発生しています。

「Form1」には Dockpanel があり、以下に示すように 2 つの新しいフォームを作成しています。

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

frmGraphToolsで定義されているように、ボタンをクリックすると更新/再描画されることになっているfrmGraphフォームにZedGraphコントロールがあります。すべてが機能しているように見えます。frmGraph 内の RefreshGraph Sub が実行され、新しいデータが ZedGraph コントロールにプッシュされますが、コントロールは更新されません。frmGraph フォームまたは ZedGraph コントロールを適切に更新/更新/再描画するには、何をする必要がありますか?

4

1 に答える 1

1

frmGraphの正しいインスタンスからRefreshGroupメソッドへの参照を渡します

 AddHandler frmT.UpdateGraph, AddressOf frmG.RefreshGraph

また、日付の代わりに文字列を渡すため、この呼び出しはコンパイラによってフラグが付けられる必要があります

 RaiseEvent UpdateGraph(dtpJobDate.Value.ToString())

おそらくあなたはオプションを厳しくオフにしています

于 2013-02-06T16:16:30.957 に答える