2015-05-14 2 views
0

Я хочу изменить цвет имени пользователя USER внутри RitchTextBox, я использую этот код ниже, чтобы вызвать SUB, но весь текст теперь красным?call sub изменить имя пользователя цвет

UPDATE

Sub AddMessage(txtUsername As String, txtSend As String) 
    box.SelectionColor = Color.Red 
    box.AppendText(vbCrLf & txtUsername & "$ ") 
    box.SelectionColor = Color.Black 
    box.AppendText(txtSend) 
End Sub 


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdSend.Click 

    ' Shell("net send " & txtcomputer.Text & " " & txtmessage.Text) 


    Try 
     If txtPCIPadd.Text = "" Or txtUsername.Text = "" Or txtSend.Text = "" Then 
      MsgBox("wright a message!", "MsgBox") 
     Else 
      client = New TcpClient(txtPCIPadd.Text, 44444) 
      Dim writer As New StreamWriter(client.GetStream()) 

      txttempmsg.Text = (txtSend.Text) 
      writer.Write(txtUsername.Text + " @ " + txtSend.Text) 
      AddMessage(txtUsername.Text, txttempmsg.Text + vbCrLf) 
      'txtmsg.Text="You:" + txtmessage.Text) 
      writer.Flush() 
      txtSend.Text = "" 
     End If 
    Catch ex As Exception 
     MsgBox(ex.Message) 
    End Try 
End Sub 
+0

Заменить box.Text = .... линия с вызовом вашему AddMessage Sub. –

+0

не работает тоже я меняю его на это AddMessage («txtUsername», «txttempmsg») теперь, когда я отправляю сообщение себе, я получил это в окне чата txtUsernameJAMES-PC: привет – narzan

ответ

0

Если у вас есть проблемы при попытке получить что-то, чтобы работать в вашей программе. Легче создать тестовый пример, который затем можно использовать для выяснения того, что происходит, не имея дело с большим количеством других переменных в вашей более крупной программе. В вашем случае я создал приложение VB Winforms, добавил RichTextBox, два TextBox и кнопку. Поступая таким образом, я могу показать, что функция работает.

Public Class Form1 
    Sub AddMessage(txtUsername As String, txtSend As String) 
     box.SelectionColor = Color.Red 
     box.AppendText(vbCrLf & txtUsername & " :") 'Note added colon 
     box.SelectionColor = Color.Black 
     box.AppendText(txtSend) 'Note changed variable name to parameter name 
    End Sub 

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
     AddMessage(txtUsername.Text, txttempmsg.Text) 
    End Sub 

End Class 

Пример:

enter image description here

+1

Мне нравится ваша идея, хорошо, позвольте мне сделать это, чтобы Посмотрите, что происходит на самом деле :) спасибо Mark – narzan

+0

duplicate command the problem из этих 2 строк, теперь это работа, когда я отправляю Hi, чернилы и имя пользователя в красном цвете, но только на 2 секунды, writer.Write (txtUsername.Text + ":" + txtSend.Text) AddMessage (box.Text + txtUsername.Text, txttempmsg.Text + vbCrLf) – narzan

+0

вам не нужно добавлять box.Text или VbCrLf в свои вкладки параметров для подпрограммы AddMessage, они уже являются частью этого , Добавление добавляет новый текст в существующий текст –

Смежные вопросы