2012-10-31 4 views
0

내 코드를 좀 더 우아하고 효율적으로 작성할 수 있습니까?VB.NET에서 중복 코드 통합

특히, 모든 양식에 도구 상자가 있습니다. 각 양식에는 본질적으로 동일한 작업을 수행하는 고유 한 메소드 세트가 있습니다. 거기에 하나의 방법을 저장하는 방법을 모두 삭제하고, 그냥 내 양식 특정 변수에 대한 스위치 문으로 동봉?

의 예 내가 얘기하고있는 무슨 :

'Form 1 
Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitToolStripMenuItem.Click 
    Application.Exit() 
End Sub 

'Form 2 
Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitToolStripMenuItem.Click 
    Application.Exit() 
End Sub 

내가 그들 중 하나를 삭제하고 별도의 모듈에 다른 이동하고를 Form1과 Form2를 모두 역할을 수 있었 을까?

Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles [myWholeDangProject].ExitToolStripMenuItem.Click 
    Application.Exit() 
End Sub 

답변

0

예, Addhandler 및 AddressOf를 사용하여 양식이 초기화 될 때 이벤트를 연결합니다.

AddHandler ExitToolStripMenuItem.Click, AddressOf MyModule.ExitHandler 

Public Sub ExitHandler(ByVal sender As System.Object, ByVal e As System.EventArgs) 
    Application.Exit() 
End Sub 
+0

감사합니다! 내 옵션을보고 나서 내가 원하는 루트인지 확실하지 않습니다. – Meowbits

0

WithEvents 이벤트를 공유 모듈로 보낼 수있는 방법이 없습니다. 그렇지만 공유 클래스 또는 VB.NET 모듈은 두 컨트롤 이벤트 핸들러에서 호출 할 수있는 서브 루틴을 포함 할 수 있습니다.

당신 공유 이벤트 핸들러를 만들 수 있지만 가장 간단한 경우에 하위에 단지 바로 전화가 쉬울 것하지만 실제로 이벤트에 코드를 연결합니다 AddHandler 키워드를 사용해야합니다.