In mijn Telemeter Indicator programma maak ik gebruik van een backgroundworker zodoende als er iets mis gaat (http blijft hangen ofzo) dan kan het programma de thread afbreken. Nu maak ik gebruik van een log genaamd sLog (string) deze vul ik en als de gebruiker het logboek opend word deze ingelezen in een textbox (frmlog.txtlog).
Nu het probleem is als het logboek openstaat dan word de tekst niet toegevoegd. Dit heb ik opgezocht en blijkbaar moet je die dan eerst invoken en hangt je textbox aan de 2de thread en kan die zo worden bijgevuld.
Nu dit lukt me niet, de waarde van invokerequired blijft op false staan. Wat dus niet klopt. Iemand dat me een duw in de juiste richting kan geven?
Nu het probleem is als het logboek openstaat dan word de tekst niet toegevoegd. Dit heb ik opgezocht en blijkbaar moet je die dan eerst invoken en hangt je textbox aan de 2de thread en kan die zo worden bijgevuld.
Nu dit lukt me niet, de waarde van invokerequired blijft op false staan. Wat dus niet klopt. Iemand dat me een duw in de juiste richting kan geven?
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| Public Sub Add2Log(ByVal sInput As String) sInput = "[" & Date.UtcNow.ToString("dd/MM/yyyy HH:mm:ss") & "UTC] " & sInput.Replace(Environment.NewLine, "") '.Replace(vbCr, "")'.Replace(vbLf, "") sLog &= IIf(sLog <> "", Environment.NewLine, "") & sInput If bShowLog Then 'word gezet als het logboek word geopend Add2LogText(sInput) End If End Sub Private Delegate Sub SetTextCallback(ByVal txt As String) Private Sub Add2LogText(ByVal txt As String) Try If frmLog.txtLog.InvokeRequired Then frmLog.txtLog.Invoke(New SetTextCallback(AddressOf Add2LogText), New Object() {txt}) Else frmLog.txtLog.AppendText(IIf(frmLog.txtLog.Text <> "", Environment.NewLine, "") & txt) End If Catch ex As Exception Console.WriteLine("Add2logtext: " & ex.Message) End Try ' Console.WriteLine("Add2logtext: " & frmLog.txtLog.InvokeRequired) End Sub |
Al wat ik aanraak werk niet meer zoals het hoort. Damic houd niet van zijn verjaardag