阿狗爱玩耍 2019-05-16 21:11 采纳率: 0%
浏览 222

VBnet ZedGraph可以用buttom的单击触发绘图事件吗?

图片说明
如图所示的一个Form,根据Case:

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim junk As ZedGraph.ZedGraphControl
        junk = ZedGraphControl2
        junk.GraphPane.Title = "Test Case for VB"
        junk.IsShowPointValues = False

        Dim x(100) As Double
        Dim y(100) As Double
        Dim i As Integer
        Randomize()
        For i = 1 To 100
            x(i) = i / 100 * 6.3
            y(i) = Math.Sin(x(i))
        Next

        junk.GraphPane.AddCurve("Sine Wave", x, y, Color.Blue, ZedGraph.SymbolType.XCross)
        junk.GraphPane.AxisFill = New ZedGraph.Fill(Color.White, Color.LightGoldenrodYellow)
        junk.AxisChange()
    End Sub

直接运行可以显示绘图,那么将该段代码置入Show的Buttom中,以Click为触发事件就无法绘图,请问各位如何解决?

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-09 14:44
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    要使用Form1_Load事件而不是Form1_Click事件来触发ZedGraph控件的图形绘制,你需要在你的程序中实现一个自定义的事件处理程序。以下是一个示例:

    首先,创建一个新的类来实现自定义事件处理程序,并重写Load方法。

    Public Class CustomEventHandler
        Private WithEvents g As ZedGraph.ZedGraphControl
    
        Public Sub Load(sender As Object, e As EventArgs)
            g = ZedGraphControl2
            g.GraphPane.Title = "Custom Event Test"
            g.IsShowPointValues = False
    
            ' 其他初始化代码...
        End Sub
    End Class
    

    然后,在你的主程序或用户界面中添加一个按钮或任何其他可点击的对象作为触发点,当它被点击时调用这个新事件处理程序。

    例如,如果您的按钮位于 Form1 的底部,您可以这样设置:

    Button button = ... // 假设按钮位于 Form1 的底部
    button.Click += New EventHandler(CustomEventHandler.Load)
    

    现在,每当按钮被点击时,Load 方法会被调用,从而触发 ZedGraph 控件的图形绘制。注意:这仅适用于使用 Visual Basic 编写的程序。对于 C# 等其他编程语言,可能需要稍微调整实现方式。

    评论

报告相同问题?