Ich bin ein Problem mit VB.NET mit:einen Unter von anderen Formen Aufruf gibt unterschiedliche Ergebnisse
Ich habe 3 verschiedene Formen bekommt (Public Class): Mainform, plotForm und trade.
Beide plotForm und eine Untertrade zu nennen, die einen Teil von Mainform, genannt SendHost:
Public Class mainForm
Public Sub SendHost(Text As String)
Dim OutData() As Byte = Encoding.Unicode.GetBytes(Text)
Client.BeginSend(OutData, 0, OutData.Length, SocketFlags.None, New AsyncCallback(AddressOf OnSend), Client)
End Sub
End Class
Wenn von plotForm Aufruf, gibt es kein Problem:
Public Class plotForm
Private Sub btnBuy_Click(sender As Object, e As EventArgs) Handles btnBuy.Click
mainForm.SendHost("GBuy§" & Prop.PositionID)
''' Another code here....
End Sub
End Class
Wenn jedoch die gleiche Sub wird von einem anderen Sub namens Trade aufgerufen, gibt es ein Problem:
Dies wird das Sub in MainForm starten, aber Visual Studio sagt mir, dass "Client" Null ist, geben Sie mir eine NullReferenceExpection. Dies passiert nicht mit btnBuy_Click. Ich verstehe das nicht, und Hinweise auf eine Lösung sind sehr willkommen! Vielen Dank! Fühlen Sie sich frei, etwas zu fragen.
plotForm und trade gestartet wie (in Mainform, verschiedene U-Boote):
Dim TradeW As New Trade
TradeW.ShowDialog(Me)
und:
Dim plotbox As New PlotBox
plotbox.ShowDialog(Me)
Mögliche Duplikate von [Was ist eine NullReferenceException, und wie behebe ich es?] (Http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix -it) – Enigmativity
Sie weisen darauf hin, "wo wird' Client' instanziiert? " – Enigmativity
Der Client ist ein Teil von mainForm, Initialisiert bei der Erstellung. Dim-Client als Socket Es ist mit dem Remote-Host verbunden und beginnt mit dem Senden von Daten am SendHost-Sub. –