免費論壇 繁體 | 簡體
Sclub交友聊天~加入聊天室當版主
分享
返回列表 回復 發帖

委派

我用Bill前輩的  委派演義(一) 做了實際程式碼

你先參考一下
Public Class Form1
    Public Delegate Sub DrawStr() ' 宣告一個沒有回傳值的委派型別
    Public a As DrawStr           ' 用變數存取此委派型別 (可以執行自己,因為型別有宣告自己是個Sub)
    Dim PrintStr As String = ""   ' 要印出的字串
    Private Sub Form1_Load_1(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        a = AddressOf Panel1.Refresh    ' 設定委派,當a被執行時就啟動Panel1.Refresh事件 (當然也可以改成你要的方法)
    End Sub

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        yy()
    End Sub

    Private Sub yy()
        PrintStr = "Test"       ' 更改字串文字
        a()                     ' 執行委派
    End Sub

    Private Sub Panel1_Paint(sender As System.Object, e As System.Windows.Forms.PaintEventArgs) Handles Panel1.Paint
        ' 注意Panel被產生時會重繪一次,若有設定字串文字就會被先印出
        e.Graphics.DrawString(PrintStr, New Font("Arial", 12), Brushes.Brown, 20, 20)
    End Sub
End Class
返回列表