편집 : 내 원래 질문은 너무 혼란 스러웠습니다.AddressOf를 사용하여 AddHandler에 델리게이트 서브를 지정할 수 있습니까?
Public Class PrintResults
Public Sub ResultsToPS(ByVal lis As List(Of FileData), ByVal PSPathName As String)
Me.List = lis
'setup report writer
Dim rep As New Helper.Report
'create report to PS
rep.ToPS(PSPathName)
End Sub
Public Class Report
Public Sub New()
PrintDoc = New Printing.PrintDocument
End Sub
Public WithEvents PrintDoc As Printing.PrintDocument
Public PrintDocPrintPage As PrintDoc_PrintPage
Public Delegate Sub PrintDoc_PrintPage(ByVal sender As Object, _
ByVal e As Printing.PrintPageEventArgs) 'Handles PrintDoc.PrintPage
Public Function ToPS(ByVal PSPathName As String) As String
'fails
AddHandler Me.PrintDoc.PrintPage, AddressOf Me.PrintDocPrintPage
Me.PrintDoc.Print()
End Function
AddHandler에는 컴파일러 오류가 있습니다. AddressOf 피연산자는 메서드의 이름이어야합니다. Delegate sub에 핸들러를 할당 할 방법이 있습니까?
현재 클래스 간 의존성은 매우 복잡하다. 아마'Report'가 메인 클래스가되기를 원하지만'List (Of FileData)'를'PSPathName'에 커스터마이징 할 수있게 해주는'Report'에'PrintResults'의 인스턴스를 할당 할 수 있기를 원할 것입니다 'Report'의 메소드. 그것은 당신의 목표를 묘사 했습니까? – TnTinMn