2017-10-19 79 views
-1

我需要我的代碼BC30455參數的參數「發件人」的

Public Class Forma 
Private Sub ProjectToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ProjectToolStripMenuItem.Click 
    If ProjectToolStripMenuItem_Click() Then 
     Print(Form_load) 
    End If 
End Sub 
Private Sub Form_load(FormB As Object) 

End Sub 


End Class 

幫助,但我不斷收到的參數「發件人」未指定BC30455如果沒有指定。我做錯了什麼

+0

我猜你試圖檢查'ProjectToolStripMenuItem'是否被點擊或不。如果是這樣的話,你在做什麼是不必要的。每次單擊菜單項時都會調用ProjectToolStripMenuItem_Click方法;沒有必要驗證它是否被點擊,因爲你可以99%確定它是** _。 –

+0

我建議你去找一本編程書或教程來熟悉VB.NET語言。你在'If'語句和'Print(Form_Load)'調用中你現在正在做什麼是錯誤的。 –

回答

0

你不能通過一個Sub作爲參數Print(Form_load)FormB.Print()可能是你正在尋找的。

0

這看起來像一個問題:If ProjectToolStripMenuItem_Click() Then

這是相同的子打個電話,它沒有指定的參數。

1

您的病情想檢查事件結果ProjectToolStripMenuItem_Click(點擊事件ProjectToolStripMenuItem)。在此功能上,您不需要定義sendere參數。

你應該檢查你的代碼並修復的問題:

Public Class Forma 
    Private Sub ProjectToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ProjectToolStripMenuItem.Click 
     If exampleFunction() Then '<-- choose the correct function or variable 
      Print(Form_load) '<-- Form_load?? maybe FormB?? 
     End If 
    End Sub 
    Private Sub Form_load(FormB As Object) 

    End Sub 
End Class 

一些基礎知識,你應該知道:

  • 一個Sub沒有返回值,所以你不能使用一個條件下的Sub(只有函數,變量和值可以用於條件)。
  • 它看起來像你檢查按鈕/菜單項是否被用戶點擊。您無需檢查,因爲如果用戶單擊ProjectToolStripMenuItem,則會自動調用事件ProjectToolStripMenuItem_Click。在嘗試檢查按鈕/菜單項被點擊時,它實際上被點擊了。你可以在official .NET docs找到更多關於Event Handlers的信息。

錯誤信息應足夠清楚,要解決這個問題:

You have not supplied an argument for a required parameter.

To correct this error:

  • Supply an argument for the specified parameter.

source:https://docs.microsoft.com/en-us/dotnet/visual-basic/misc/bc30455


您嘗試print the form按鈕點擊?

Public Class Forma 
    Private printForm as Object 

    Private Sub ProjectToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ProjectToolStripMenuItem.Click 
     If ConditionIsTrue() Then '<-- choose the correct Sub or Function 
      Me.printForm.Print() 
     End If 
    End Sub 
    Private Sub Form_load(FormB As Object) 
     '... maybe some other stuff 

     Me.printForm = FormB 

     '... maybe some other stuff 
    End Sub 
End Class 
+0

迄今爲止最準確的答案。儘管你應該明確提到'ProjectToolStripMenuItem_Click'不會返回任何東西,因此不能在'If'語句中檢查。 - 我想_OP想要做的是檢查菜單項_ **實際上是否被點擊過** _。雖然這樣做完全沒有必要,但我看到很多新程序員都在試圖做同樣的事情。 –