我是编程新手,有人告诉我应该使用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发布于 2013-03-26 19:29:02
你不能用你的方法处理Activate.Click,因为你有额外的Integer参数,它与事件签名不兼容。
事件签名
Click(sender As Object, e As System.EventArgs)你的方法
Activate_Click(ByRef intIDToChange As Integer, sender As System.Object, e As System.EventArgs)发布于 2013-03-26 19:29:26
您必须将您的方法定义为
Private Sub Activate_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Activate.Click
因为按钮单击事件只有两个参数。
如果要使用变量intIDToChange,请将其作为类级别变量提供,如下所示
private intIDToChange as Integer并在Activate_Click中更新它。
发布于 2013-03-26 19:32:38
听起来您在那里声明的事件处理程序(Activate_Click)与ActivateClick的事件定义不匹配。
尝试更改为:
Private Sub Activate_Click(ByVal intIDToChange As Integer, ....) Handles Activate.ClickByVal通过参数发送变量的值,而ByRef发送变量(意味着在子例程中所做的更改会影响调用例程变量)。
更详细的答案在这里:http://social.msdn.microsoft.com/Forums/en-US/vbgeneral/thread/07b9d3b9-5658-49ed-9218-005564e8209e/
https://stackoverflow.com/questions/15635892
复制相似问题