无法在富文本框中看到字符串

莫伊兹

我正在努力c# winforms我有rich textbox我的main form现在,我正在使用一个类HandleClient,其中正在使用一个我要在其中调用函数的线程。在该函数中,我已经创建了主要形式的新对象。我的代码如下

首先,我通过用户传递一个端口号,然后单击按钮,我将收听它。为此,我有一个名为Server

主要形式

port = Convert.ToInt32(tbPort.Text);
Server server = new Server(port);
if (btnListen.Text == "Listen")
{
     btnListen.Text = "Close";
     server.start();
}

创建上述对象,并​​调用start方法

服务器等级

public Server(int port)
{
   this.port = port;
}

 public void start()
 {
        listner = new TcpListener(new IPEndPoint(IPAddress.Any, port));
        listner.Start();
        listnerthread = new Thread(new ThreadStart(Listner));
        listnerthread.Start();
 }

public void Listner()
{
        while (true)
        {
            try
            {

                TcpClient C = listner.AcceptTcpClient();
                HandleClient client = new HandleClient();
                client.startClient(C);

            }
            catch (Exception ex)
            {
                Console.WriteLine("Error in listner");
                Console.WriteLine(ex.Message);
            }
        }
}

上面的方法是监听端口。另外,我的句柄客户端函数也被调用。我试图在其中显示到富文本框的输入字符串

处理客户

 // Buffer to store the response bytes.
byte[] data = new byte[9999];

Thread comThread;
public void startClient(TcpClient inClientSocket)
{
   this.clientsocket = inClientSocket;
   comThread = new Thread(doChat);
   comThread.Start();
}

private void doChat()
{
        MainForm form = new MainForm();

        while ((true))
        {
            try
            {
                // Read the first batch of the TcpServer response bytes.
                NetworkStream stream = clientsocket.GetStream();
                stream.ReadTimeout = 1000;
                int bytes = stream.Read(data, 0, data.Length);                 

                responseData = BitConverter.ToString(data,0,bytes); 
                form.rtBRecievedData.Text = responseData;

                stream.Close();
                clientsocket.Close();
            }
            catch (Exception ex)
            {
                Console.WriteLine(" >> " + ex.ToString());
                comThread.Abort();
            }
        }
}

的值responseData就是01-01-01-01-00-01-00-19-F4-09-10-00-00-00-00-30-30-32-39-39-38-30-30-35-35-36-31-00-01-00-01-00-01-00-15-AA-10-00-00-00-00-30-30-32-39-39-38-30-30-35-35-36-31-12-00-12

现在的主要问题是该字符串未显示在上rich text box我可能会缺少我无法理解的内容。

任何帮助将不胜感激。

乔纳森·威尔科克

您的问题是,您试图在(没有调用Show()TextBox的新实例)上显示信息,MainForm而不是MainForm在用户已进入端口的现有实例上显示信息要解决此问题,您的HandleClient班级需要引用现有表格。ServerHandleClient类中都添加字段,并相应地调整构造函数:

public Server(int port, Form mainForm)
{
    this.port = port;
    this.mainForm = mainForm;
}

public HandleClient (Form mainForm)
{
    this.mainForm = mainForm;
}

现在,在创建时Server,您可以使用this关键字将对当前表单的引用传递给,然后传递HandleClient

最后,您删除创建新行的行,MainForm而使用该字段。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

具有常量和动态文本的富文本框的字符串格式

来自分类Dev

从富文本框中获取分割的字符串时出错

来自分类Dev

如何在富文本框C#中的光标位置附加字符串?

来自分类Dev

无法在文本框中输入字符串。它只是打开浏览器

来自分类Dev

无法用 TypeScript 中的文本框替换字符串

来自分类Dev

富文本框*格式

来自分类Dev

无法从UI线程更新富文本框。

来自分类Dev

仅从文本框中的字符串打印元音

来自分类Dev

在文本框中显示连接的字符串

来自分类Dev

Winform在文本框中拆分字符串

来自分类Dev

在文本框中显示字符串变量

来自分类Dev

在文本框中显示连接的字符串

来自分类Dev

在Windows窗体文本框中显示字符串

来自分类Dev

将文本框值传递给字符串

来自分类Dev

在文本框中将int转换为字符串

来自分类Dev

在字符串之间插入文本框

来自分类Dev

从文本框中切片字符串

来自分类Dev

+ =符号在字符串和文本框中的区别

来自分类Dev

如何从文本框中获取字符串

来自分类Dev

如何在dtruss输出中看到完整的字符串?

来自分类Dev

从文本框中获取字符串并应用于字符串属性

来自分类Dev

Selenium认为文本框是隐藏的,即使我可以在浏览器中看到它

来自分类Dev

富文本框中的新行

来自分类Dev

如何打印富文本框的内容

来自分类Dev

MS Access:使用VBA将字符串从文本框拆分为其他文本框

来自分类Dev

Excel for python中动态值字符串的富文本

来自分类Dev

PDFSharp解析富文本字符串

来自分类Dev

在两行列表框中从文本框中添加相同的字符串?

来自分类Dev

NET字符串长度用多行分割多行文本框文本

Related 相关文章

热门标签

归档