Ich habe ein nerviges Problem. Ich bin momentan am Schreiben eines Chattes. Nun aktualisiert der Timer (Timer1) alle 3 Sekunden den Verlauf. So weit so gut. Nur immer wenn er alle 3 Sekunden aktualisiert, dann hängt der Chat. Und wenn man dann am Schreiben ist, ist das schon ganz schön nervig. Ich habe schon mal etwas gegooglet und etwas von einem "Timers.Timer anstatt Windows.Forms.Timer nehmen" gehört. Dort wurde auch gesagt, wie das ganze zu machen ist. Aber da bin ich nicht durchgestiegen.
Das hier ist mein kompletter Code... Ich denke zwar nicht, dass der zu gebrauchen ist, weil es nur um den Timer geht, aber falls doch, dann ist es einfach herauszulesen. Was ich erstmal nicht möchte, sind Verbesserungsvorschläge. Die nehme ich gerne entgegen, wenn ich das Timer-Problem gelöst habe:
Ich habe alle geheimen Daten (Server-.txt-Datei-Pfad, Username und Passwort) durch "Server", "Nutzername" und "Passwort" ersetzt.
PS: Was den Timer 2 angeht... Der stört nicht, der ist nur dafür zuständig, dass der Chat am Anfang unten startet. Unter Form1_Load hat es nicht funktioniert. Das selbe Problem hatte ich auf einem anderen Rechner auch so gelöst. Es geht somit nur um den Timer1...
Das hier ist mein kompletter Code... Ich denke zwar nicht, dass der zu gebrauchen ist, weil es nur um den Timer geht, aber falls doch, dann ist es einfach herauszulesen. Was ich erstmal nicht möchte, sind Verbesserungsvorschläge. Die nehme ich gerne entgegen, wenn ich das Timer-Problem gelöst habe:
VB.NET-Quellcode
-
- Public Class Form1
- Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox_nachricht.TextChanged
- Label1.Text = TextBox_nachricht.TextLength
- End Sub
- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
- Timer1.Interval = 3000
- Dim webclient As New Net.WebClient
- webclient.Credentials = New Net.NetworkCredential("Nutzername", "Passwort")
- Try
- TextBox_chat.Text = webclient.DownloadString("Server")
- Catch ex As Exception
- MsgBox("Fehler 1 ; Der Verlauf konnte nicht heruntergeladen werden!", MsgBoxStyle.Information, "Fehler")
- End Try
- TextBox_chat.SelectionStart = TextBox_chat.Text.Length
- TextBox_chat.ScrollToCaret()
- End Sub
- Private Sub Button_senden_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_senden.Click
- Dim webclient As New Net.WebClient
- webclient.Credentials = New Net.NetworkCredential("Nutzername", "Passwort")
- If TextBox_nachricht.Text <> "" Then
- ProgressBar.Value = 35
- Try
- webclient.UploadString("Server", TextBox_chat.Text & "<" & Label4.Text & "-" & My.Computer.Clock.LocalTime.Hour & ":" & My.Computer.Clock.LocalTime.Minute & ">: " & TextBox_nachricht.Text & vbNewLine & vbNewLine)
- TextBox_nachricht.Clear()
- Catch ex As Exception
- MsgBox("Fehler 2 ; Die Nachricht konnte nicht gesendet werden!", MsgBoxStyle.Information, "Fehler")
- End Try
- ProgressBar.Value = 90
- Try
- TextBox_chat.Text = webclient.DownloadString("Server")
- Catch ex As Exception
- MsgBox("Fehler 1 ; Der Verlauf konnte nicht heruntergeladen werden!", MsgBoxStyle.Information, "Fehler")
- End Try
- ProgressBar.Value = 100
- Else
- MsgBox("Ein leeres Textfeld kann nicht gesendet werden!", MsgBoxStyle.Information, "Fehler")
- End If
- TextBox_chat.SelectionStart = TextBox_chat.Text.Length
- TextBox_chat.ScrollToCaret()
- ProgressBar.Value = 0
- End Sub
- Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
- Dim webclient As New Net.WebClient
- webclient.Credentials = New Net.NetworkCredential("Nutzername", "Passwort")
- Try
- TextBox_chat.Text = webclient.DownloadString("Server")
- Catch ex As Exception
- MsgBox("Fehler 1 ; Der Verlauf konnte nicht heruntergeladen werden!", MsgBoxStyle.Information, "Fehler")
- End Try
- End Sub
- Private Sub Form1_Load_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- Dim webclient As New Net.WebClient
- webclient.Credentials = New Net.NetworkCredential("Nutzername", "Passwort")
- Try
- TextBox_chat.Text = webclient.DownloadString("Server")
- TextBox_chat.SelectionStart = TextBox_chat.Text.Length
- TextBox_chat.ScrollToCaret()
- Catch ex As Exception
- MsgBox("Fehler 1 ; Der Verlauf konnte nicht heruntergeladen werden!", MsgBoxStyle.Information, "Fehler")
- End Try
- End Sub
- Private Sub TextBox_chat_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox_chat.TextChanged
- TextBox_chat.SelectionStart = TextBox_chat.Text.Length
- TextBox_chat.ScrollToCaret()
- End Sub
- Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
- TextBox_chat.SelectionStart = TextBox_chat.Text.Length
- TextBox_chat.ScrollToCaret()
- Timer2.Stop()
- End Sub
- End Class
Ich habe alle geheimen Daten (Server-.txt-Datei-Pfad, Username und Passwort) durch "Server", "Nutzername" und "Passwort" ersetzt.
PS: Was den Timer 2 angeht... Der stört nicht, der ist nur dafür zuständig, dass der Chat am Anfang unten startet. Unter Form1_Load hat es nicht funktioniert. Das selbe Problem hatte ich auf einem anderen Rechner auch so gelöst. Es geht somit nur um den Timer1...