你先參考一下
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