Hallo.
Ich habe folgendes von C# nach VB konvertiert :
Es kommt folgender Fehler:
Public Event MessageReceived(sender As Object, e As radio42.Multimedia.Midi.MidiMessageEventArgs)" ist ein Ereignis und kann nicht direkt aufgerufen werden. Verwenden Sie eine RaiseEvent-Anweisung, um ein Ereignis aufzurufen
( siehe Zeile mit XXXXXXXXXX)
Wie muß ich das ändern ?
Ich habe folgendes von C# nach VB konvertiert :
VB.NET-Quellcode
- Private Sub InDevice_MessageReceived(ByVal sender As Object, ByVal e As MidiMessageEventArgs)
- If e.IsShortMessage Then
- If e.ShortMessage.StatusType = MIDIStatus.NoteOn AndAlso e.ShortMessage.Channel = 1 AndAlso e.ShortMessage.Data1 = 1 Then
- buttonStart.PerformClick()
- End If
- End If
- If e.IsShortMessage Then
- If e.ShortMessage.StatusType = MIDIStatus.NoteOn AndAlso e.ShortMessage.Channel = 0 AndAlso e.ShortMessage.Data1 = 0 Then
- button1.PerformClick()
- End If
- End If
- If True Then
- If Me.textBoxMsg.Text.Length > 32000 ThenMe.textBoxMsg.Clear()
- End If
- If e.IsShortMessage Then
- If Me.checkBoxHex.Checked ThenMe.textBoxMsg.AppendText([String].Format("{0} : {1}" & vbCr & vbLf, e.ShortMessage.ID, e.ShortMessage.ToString("{T}" & vbTab & "{A} {H}")))
- ElseMe.textBoxMsg.AppendText([String].Format("{0} : {1}" & vbCr & vbLf, e.ShortMessage.ID, e.ShortMessage.ToString("G")))
- End If
- ElseIf e.IsSysExMessage ThenMe.textBoxMsg.AppendText([String].Format("{0} : {1}" & vbCr & vbLf, e.SysExMessage.ID, e.SysExMessage.ToString()))
- ElseIf e.EventType = MidiMessageEventType.Opened ThenMe.textBoxMsg.AppendText([String].Format("Midi device {0} opened." & vbCr & vbLf, e.DeviceID))
- ElseIf e.EventType = MidiMessageEventType.Closed ThenMe.textBoxMsg.AppendText([String].Format("Midi device {0} closed." & vbCr & vbLf, e.DeviceID))
- ElseIf e.EventType = MidiMessageEventType.Started ThenMe.textBoxMsg.AppendText([String].Format("Midi device {0} started." & vbCr & vbLf, e.DeviceID))
- ElseIf e.EventType = MidiMessageEventType.Stopped ThenMe.textBoxMsg.AppendText([String].Format("Midi device {0} stopped." & vbCr & vbLf, e.DeviceID))
- End If
- End If
- End Sub
VB.NET-Quellcode
- Private Sub StartDevice(ByVal deviceID As Integer)Me.textBoxMsg.Clear()
- _inDevice = New MidiInputDevice(deviceID)_inDevice.AutoPairController = Me.checkBoxAutoPair.Checked
- _inDevice.MessageFilter = BuildFilter()
- _inDevice.MessageReceived += New MidiMessageEventHandler(AddressOf InDevice_MessageReceived) XXXXXXXXX
- If _inDevice.Open() Then
- Me.buttonStop.Enabled = True
- Me.buttonStart.Enabled = False
- If Not _inDevice.Start() ThenMessageBox.Show(Me, "Midi device could not be started! Error " & _inDevice.LastErrorCode.ToString(), "Midi Error")
- End If
- ElseMessageBox.Show(Me, "Midi device could not be opened! Error " & _inDevice.LastErrorCode.ToString(), "Midi Error")
- End If
- End Sub
- Private Sub StopDevice()
- If _inDevice IsNot Nothing AndAlso _inDevice.IsStarted Then
- _inDevice.[Stop]()
- _inDevice.Close()_inDevice.MessageReceived -= New MidiMessageEventHandler(AddressOf InDevice_MessageReceived) XXXXXXXXX
- Me.buttonStop.Enabled = False
- Me.buttonStart.Enabled = True
- End If
- End Sub
Es kommt folgender Fehler:
Public Event MessageReceived(sender As Object, e As radio42.Multimedia.Midi.MidiMessageEventArgs)" ist ein Ereignis und kann nicht direkt aufgerufen werden. Verwenden Sie eine RaiseEvent-Anweisung, um ein Ereignis aufzurufen
( siehe Zeile mit XXXXXXXXXX)
Wie muß ich das ändern ?