vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Re: .show .showdialog 
Autor: Neo21
Datum: 13.05.04 16:33

ich programmiere gerade nen client
immer wenn vom server ne nachricth gesendet wird soll er ein neues fenster öffnen.
das problem ist nur das sich das neue fenster zwar öffnet aber es bleibt stehn (laggy)
das interface wird nicht richtig angezeigt und dann kommt nach ein paar sekunden das dieses fenster keine rückmeldung gibt.
wenn ich statt mit "fenster.show" "fenster.showdialog" benutze funktionierts wunderbar, aber dann öffnet er bei ner neuen server nachricth kein weiteres fenster was das programm aber machen sollte...

verstanden?

hier ist der vereinfachte code nochmal

  Const READ_BUFFER_SIZE As Integer = 255
    Const PORT_NUM As Integer = 10000
 
    Private client As TcpClient
    Private readBuffer(READ_BUFFER_SIZE) As Byte
 
    ' Pop up a Connect user dialog and send a message requesting user to log in 
    ' to chat.
    Sub AttemptLogin()
        Dim frmConnectUser As New frmConnectUser
        frmConnectUser.StartPosition = FormStartPosition.CenterParent
        frmConnectUser.ShowDialog(Me)
        SendData("CONNECT|" & frmConnectUser.txtUserLogin.Text)
        frmConnectUser.Dispose()
    End Sub
 
    ' This is the callback function for TcpClient.GetStream.Begin to get an
    ' asynchronous read.
    Private Sub DoRead(ByVal ar As IAsyncResult)
        Dim BytesRead As Integer
        Dim strMessage As String
 
        Try
            ' Finish asynchronous read into readBuffer and return number of 
            ' bytes read.
            BytesRead = client.GetStream.EndRead(ar)
            If BytesRead < 1 Then
                ' If no bytes were read server has close.  Disable input window.
                MarkAsDisconnected()
                Exit Sub
            End If
 
            ' Convert the byte array the message was saved into, minus two for 
            ' the
            ' Chr(13) and Chr(10)
            strMessage = Encoding.ASCII.GetString(readBuffer, 0, BytesRead - 2)
 
            'ruft die funktion auf die das fenster erstellt (im orginal 
            ' programm filter die
            'funktion noch die einzelnen nachrichten typen (z.b. chat, login, 
            ' disconnect usw)
            ProcessCommands(strMessage)
 
            ' Start a new asynchronous read into readBuffer.
            client.GetStream.BeginRead(readBuffer, 0, READ_BUFFER_SIZE, _
              AddressOf DoRead, Nothing)
        Catch e As Exception
            MarkAsDisconnected()
        End Try
    End Sub
 
    ' Send the server a disconnect message  
    Private Sub frmMain_Closing(ByVal sender As Object, ByVal e As _
      System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
        ' Send only if server is still running.
        If cbe_status.SelectedIndex <> 0 Then
            SendData("DISCONNECT")
        End If
    End Sub
 
    ' When the form starts, this subroutine will connect to the server and 
    ' attempt to
    ' log in.
    Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles MyBase.Load
        Dim frmConnectUser As New frmConnectUser
 
        Try
            ' The TcpClient is a subclass of Socket, providing higher level 
            ' functionality like streaming.
            client = New TcpClient("localhost", PORT_NUM)
 
            ' Start an asynchronous read invoking DoRead to avoid lagging the 
            ' user
            ' interface.
            client.GetStream.BeginRead(readBuffer, 0, READ_BUFFER_SIZE, _
              AddressOf DoRead, Nothing)
 
            ' Make sure the window is showing before popping up connection 
            ' dialog.
            Me.Show()
 
            AttemptLogin()
        Catch Ex As Exception
            MsgBox("Server is not active.  Please start server and try again.", _
                   MsgBoxStyle.Exclamation, Me.Text)
            Me.Dispose()
        End Try
 
    End Sub
 
    Private Sub ProcessCommands(ByVal strMessage As String)
        'hier wird das fenster geöffnet das sich aufhängt 
        dim test as frm_fenster
         test = new frm_fenster
         test.show
    End Sub
danke das du es dir wenigstens anschaust
ich darf jetzt möbel zusammen schrauben fürn cheff kommt davon wenn man als programmierer nicht proggen kann *lach*
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
.show .showdialog2.423Neo2113.05.04 09:49
Re: .show .showdialog1.109Neo2113.05.04 10:04
Re: .show .showdialog976Neo2113.05.04 10:40
Re: .show .showdialog1.000Neo2113.05.04 11:06
Re: .show .showdialog1.049Neo2113.05.04 11:25
Re: .show .showdialog1.004Neo2113.05.04 12:49
Re: .show .showdialog951Neo2113.05.04 15:52
Re: .show .showdialog973WaldiMaywood13.05.04 16:07
Re: .show .showdialog1.075Neo2113.05.04 16:33
Re: .show .showdialog1.019WaldiMaywood13.05.04 22:12
Re: .show .showdialog1.017Neo2114.05.04 08:15
Re: .show .showdialog1.033WaldiMaywood14.05.04 16:43
Re: .show .showdialog1.107Neo2117.05.04 08:31
Re: .show .showdialog1.028Neo2117.05.04 09:41
Re: .show .showdialog899DoubleH08.05.06 16:25
Re: .show .showdialog1.044MeisterEngel10.05.06 08:52
Re: .show .showdialog941DoubleH10.05.06 10:08
Re: .show .showdialog887DoubleH14.05.06 11:32
Re: .show .showdialog973MeisterEngel14.05.06 12:26
Re: .show .showdialog927DoubleH22.05.06 15:39
Re: .show .showdialog920MeisterEngel22.05.06 17:06

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel