2010-12-04 4 views
-1

ここでは取引があります。 私は、別のウィンドウでさまざまなメッセージを送信するテキストボックスを持っています。Enterを押すたびに、あるウィンドウから次のウィンドウへのメッセージが渡され、新しい行が作成されます同じ行に戻ってきます。あなたがエンターを押してメッセージを送信したときのmsnのようなもの!私のコードザッツTexBoxと書き込み(マウスではない)ポインターに関するVisual Basicアプリケーション

Private Sub msgSender_keyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles msgContent.KeyDown 
     If e.KeyCode = Keys.Enter Then 
      Dim outStream As Byte() = _ 
      System.Text.Encoding.ASCII.GetBytes(msg1.Text) 
      serverStream.Write(outStream, 0, outStream.Length) 
      serverStream.Flush() 
      msgContent.Text = ""  'It makes the line empty 
             'after you ve sent out a message 
     End If 
    End Sub  

The output if you send out 3 messages like "Good Morning" , "How are you", "Ok?" 
will be like that 
>> George says : Good Morning 
>> George says : 
How are you 
>> George says : 
Ok? 

私はそれが

>> George says : Good Morning 
>> George says : How are you 
>> George says : Ok? 

になりたい一方では、方法はありますか?誰でも知っていますか?言い換えれば、メッセージを送信するたびに、カーソル(マウスのものではない)が1番目に戻るようにします。

+0

あなたは間違ったコードを投稿しました。これは、クライアントのコードでWriteLine()が "George says:"と表示されるようです。 –

答えて

0

私はこれを数回読んでいますが、私はまだあなたがここで何を達成しようとしているのか正確にはわかりません。しかし、1つのことが私に襲い掛かります:「あなたがメッセージを送った後で、その行を空にしたい」と確信していますか?具体的には、このコード:私は、あなたが>> User says:とそのコメントの間に挿入されることから、改行を防ぐためにしようとしている伝えることができるものから、

 msgContent.Text = ""  'It makes the line empty 
            'after you ve sent out a message 

。上記のコードが空行を挿入している場合は、それが問題になる可能性があります。


これ以外の場合は、コードの背景にさらにコンテキストを含めると便利です。たとえば、msgContentとは何ですか? serverStreamとは何ですか?それはどこに宣言されていますか?あなたのコードの小さなスニペットを初めて見ると、あなたの変数とコントロール名のすべてが何を意味するのか分かりません。あなたのコードのどの部分(投稿してください!)は、>> User says:部分を書く責任がありますか?同じ問題がそのコード内にある可能性もあります。

+0

msgContentは、別のユーザーに送信するメッセージを書き込むテキストボックスです。 – user501625

+0

ServerStreamは、クライアントからサーバーに移動するストリームです。 (メッセージ) – user501625

0

msgContentは、別のユーザーに送信するメッセージを書き込むためのテキストボックスです。 ServerStreamは、クライアントからサーバーに移動するストリームです。 (メッセージ) ファイルサーバーのこのコード(前のものはクライアントフォルダーにあります)がメッセージを送信します。

Private Sub broadcast(ByVal msg As String, _ 
    ByVal uName As String, ByVal flag As Boolean) 
     Dim Item As DictionaryEntry 
     For Each Item In clientsList 
      Dim broadcastSocket As TcpClient 
      broadcastSocket = CType(Item.Value, TcpClient) 
      Dim broadcastStream As NetworkStream = _ 
        broadcastSocket.GetStream() 
      Dim broadcastBytes As [Byte]() 

      If flag = True Then 
       broadcastBytes = Encoding.ASCII.GetBytes(uName + " says : " + msg) 
      Else 
       broadcastBytes = Encoding.ASCII.GetBytes(msg) 
      End If 

      broadcastStream.Write(broadcastBytes, 0, broadcastBytes.Length) 
      broadcastStream.Flush() 
     Next 
End Sub 

さて、私は何をしたいです: 私はそれはあなたが、何かを書くあなたはEnterキーを押すと、それはラインをクリアし、それの非常にbegginingに行くMSN、同じように動作します。私の一行は下になり、メッセージはうまく見えません。 PS:私はラインが空であることを確信しています、私は他の方法を知らないので、多分あなたはしますか?

関連する問題