我返工建在VB6舊的應用程序,用VB.NET和Visual Studio 2005如何將文本框事件移動到其他文件 - VB6到VB.NET?
它有一個大的形式與像50-60文本框,每2-3事件處理程序,請單擊,驗證的keydown ,輸入等...
構建此應用程序的人沒有注意保持良好的結構,所以現在表單的代碼文件幾乎是2900行代碼。
它有3-4個重要功能,其他功能只是事件處理程序。
問題是,這些事件處理程序中的每一個都被定義爲私有的,並引用僅存在於表單代碼文件中的對象/文本框。
將這些事件處理程序移動到單獨文件的正確方法是什麼?
這裏是我失敗了,因爲我是小白VB.NET程序員轉移到單獨的文件中的示例代碼:
Imports System.Windows.Forms
Public Class Pol
Private cboPol As MaskedTextBox = New MaskedTextBox()
Private Sub cboPol_Enter(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) 'Handles cboPol.Enter
' TODO ova beshe zakomentirano. Da se proveri
'meGodrag.SelStart = 0
' meGodrag.SelLength = 4
'grstar = meGodrag.Text
End Sub
Private Sub cboPol_KeyDown(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.KeyEventArgs) 'Handles cboPol.KeyDown
Dim KeyCode As Short = eventArgs.KeyCode
Dim Shift As Short = eventArgs.KeyData \ &H10000
If KeyCode = Constants.LEFT_ARROW_KEY Then
'meNasmes.Focus()
End If
End Sub
Private Sub cboPol_KeyPress(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.KeyPressEventArgs) 'Handles cboPol.KeyPress
Dim KeyAscii As Short = Asc(eventArgs.KeyChar)
'If KeyAscii = Constants.ENTER_KEY Then
System.Windows.Forms.SendKeys.Send(Constants.TAB_KEY)
'End If
eventArgs.KeyChar = Chr(KeyAscii)
If KeyAscii = 0 Then
eventArgs.Handled = True
End If
End Sub
End Class
這與地球有什麼關係? – BugFinder
@BugFinder刪除它:D – Vlad
如果您只是想將代碼移動到不同的*文件*,那麼您可以在多個文件中定義部分類:https://docs.microsoft.com/en-us/dotnet/visual-basic /語言參考/調節劑/部分 – David