Forum: PC-Programmierung VB.net Timer durch RichTextBox Scrollbar stoppen?


von aloca (Gast)


Lesenswert?

Hi, es geht um folgendes:

in der Form1 werden in einer RichTextBox Zustandsmeldungen von einem COM 
Port Gerät angezeigt.

Vom Gerät kommt abwechselnd
1
Aktueller Status:
und die entsprechende Meldung z.B.
1
Übertemperatur

so, nun gibt es eine Form2, in der die jeweilige Beschreibung zu dem 
Fehler ebenfalls in einer RichTextbox angezeigt wird.

Das ganze sieht in einem Timer der zweiten Form so aus:
1
If Form1.RichTextBox1.Text.Contains("Übertemperatur") Then RichTextBox1.Text = System.IO.File.ReadAllText("PfadZurFehlerbeschreibung\übertemperatur.txt")

Die Beschreibung wird dann in der zweiten Form in die RichTextBox 
geladen.

Nun ist das Problem:
Wenn man bei längeren Fehlerbeschreibungen in der Textbox nach unten 
scrollt, springt die Textbox immer wieder nach oben, weil durch das 
abwechselnde
"Aktueller Status" und "Übertemperatur" in der Form1 die 
Fehlerbeschreibung immer wieder neu geladen wird.


- Kann man erkennen wenn der Nutzer die Scrollbar der Richtextbox 
benutzt, und den Timer dadurch anhalten?

- Wenn ich den Code nicht in den Timer, sondern in "FormLoad" schreibe, 
wird die Fehlerbeschreibung manchmal nicht geladen, falls der Nutzer die 
Form öffnet, während gerade
1
Aktueller Status
 angezeigt wird.

- Welche anderen Optionen gäbe es?

Ein anhalten des Receive Events des SerialPorts o.ä. ist keine Option, 
da hier mehr geschieht, als nur die Statusanzeige.

Vielen Dank für eure Hilfe

von Schlaumaier (Gast)


Lesenswert?

https://learn.microsoft.com/de-de/dotnet/api/system.windows.forms.richtextbox.vscroll?view=windowsdesktop-6.0


Und dann mach was. ;)


Public Class Form1

  Private Sub RichTextBox1_HScroll(sender As Object, e As 
System.EventArgs) Handles RichTextBox1.HScroll

  End Sub

  Private Sub RichTextBox1_VScroll(sender As Object, e As 
System.EventArgs) Handles RichTextBox1.VScroll

  End Sub

End Class

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.