[英]Using ByRef and ByVal
我對編程很新,我被告知我應該使用ByRef和ByVal傳遞內容,但是當我這樣做時,我得到一個錯誤說:
Error 3 Method 'Private Sub Activate_Click(ByRef intIDToChange As Integer, sender As Object, e As System.EventArgs)'
cannot handle event 'Public Event Click(sender As Object, e As System.EventArgs)' because they do not have a compatible signature.
F:\Dropbox\Gooby Backup\School Work\Computing\Unit 4\Room Booking Client\WindowsApplication1\ActivateDeactivate\Activate Deactivate.vb 32 129 WindowsApplication1
我開始使用以下內容:
Private Sub Activate_Click(ByRef intIDToChange As Integer, sender As System.Object, e As System.EventArgs) Handles Activate.Click
您無法使用您的方法處理Activate.Click
,因為您有額外的Integer
參數與Event簽名不兼容。
活動簽名
Click(sender As Object, e As System.EventArgs)
你的方法
Activate_Click(ByRef intIDToChange As Integer, sender As System.Object, e As System.EventArgs)
您必須將方法定義為
Private Sub Activate_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Activate.Click
因為按鈕單擊事件只需要兩個參數。
如果要使用變量intIDToChange
, intIDToChange
其作為類級別變量提供
private intIDToChange as Integer
並在Activate_Click
更新它。
這聽起來就像你在那里聲明的事件處理程序(Activate_Click)與ActivateClick的事件定義不匹配。
嘗試更改為:
Private Sub Activate_Click(ByVal intIDToChange As Integer, ....) Handles Activate.Click
ByVal通過參數發送變量的值,而ByRef發送變量(意味着子程序中的更改會影響調用例程變量)。
更詳細的答案在這里: http : //social.msdn.microsoft.com/Forums/en-US/vbgeneral/thread/07b9d3b9-5658-49ed-9218-005564e8209e/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.