编码-C#中线程里调用winform上的控件,问题。求助。

问题描述

C#中线程里调用winform上的控件,问题。求助。

废话不多说,我直接贴代码了。程序很简单。我摘抄的网上的。

上图是个界面。

然后程序里先是一个类。如下:
class ClientThread
{
Encoding encoding = Encoding.GetEncoding("GB2312");
private Socket client;
public string data = null;
private byte[] receiveBytes = new byte[1024];
private int recCount;

        public ClientThread(Socket ClientSocket)
        {
            this.client = ClientSocket;
        }

        public void ClientServer()
        {
            string ip;

            try
            {
                while (true)
                {
                    recCount = client.Receive(receiveBytes, receiveBytes.Length, 0);
                    ip = client.RemoteEndPoint.ToString();
                    byte[] clientIP = Encoding.Default.GetBytes(ip);

                        if (recCount != 0)
                        {
                            data = encoding.GetString(receiveBytes, 0, recCount);
                            client.Send(encoding.GetBytes("OK"), 2, 0);
                        }
                        else
                        {
                            break;
                        }

                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("出现异常:" + ex.ToString());
            }
        }

}

接下来就是开个线程了。
 private void button1_Click(object sender, EventArgs e)

{
newsocket.Bind(ipep);
newsocket.Listen(10);

     while (true)
    {
       Socket client = newsocket.Accept();
       newclient = new ClientThread(client);
       Thread newthread = new Thread(new ThreadStart(newclient.ClientServer));
        newthread.Start();
      }

}

现在我想 在界面里的textbox1.text 中显示线程中接收的数据。但是我现在调了好久没弄出来,我不知道哪里有问题。我是个新手,希望大神指点一二,谢谢了。

解决方案

c#中线程访问winform控件的若干问题
c#中线程访问winform控件的若干问题
在winform里怎么调用WebBrowser控件里的脚本

解决方案二:

data = encoding.GetString(receiveBytes, 0, recCount);
this.Invoke(new Action(() => { textBox1.Text = data; }));

时间: 2024-07-30 12:47:37

编码-C#中线程里调用winform上的控件,问题。求助。的相关文章

.net 实现图片上传的同时在网页中显示,主要是上传控件没有事件,想不出怎么弄,求大手指点

问题描述 .net实现图片上传的同时在网页中显示,主要是上传控件没有事件,想不出来怎么弄,求大手指点 解决方案 解决方案二:如果你是用的服务器控件,那也有事件的啊如果你不是的话,那就要用js来通知更新,可以的方法有:1.后台返回js,更新指定img2.前端定时轮询,超出次数则提示上传失败

C# 窗体上 Label控件 实时刷新 显示当前时间

问题描述 我用了while(true){label.Text=DateTime.Now.Second.ToString();} 可是程序就停止响应请问高手怎么办才好 解决方案 解决方案二:怎么能让他不停地更新而且我还能进行其他操作,如果叫我就timer就不用了解决方案三:while (true)            {                label.Text = DateTime.Now.Second.ToString();Application.DoEvents();System

WinForm的窗体中怎么在DataGrid中放入ComboBox控件(50分)

问题描述 WinForm的窗体中怎么在DataGrid中放入ComboBox控件我的代码:DataGridTextBoxColumndgtb=(DataGridTextBoxColumn)DBG.TableStyles[0].GridColumnStyles[0];ComboBoxcbmDBG=newComboBox();cbmDBG.Items.AddRange(newobject[]{"选项一","选项二","选项三","选项四&q

asp.net ajax 和 asp.net 2.0中的fileupload合力打造无刷新文件上传控件

ajax|asp.net|控件|上传|上传控件|刷新|无刷新 在做一个信息管理平台时用到了图片,就像做一个上传的正好用的是asp.net ajax就试着做了一个不很好 自定义用户控件文件 PicUpload.ascx 1<%@ control language="C#" autoeventwireup="true" inherits="Admin_PicUpload, App_Web_mboefw14" %>2 <asp:Ima

C# winform 关于ToolStrip控件工具项拖动到指定的Panel控件中

问题描述 C# winform 关于ToolStrip控件工具项拖动到指定的Panel控件中 C# Winform项目中,在form窗体中有一个ToolStrip控件(用于放所有的系统的功能项,目前大概有将近15个功能项,后续会陆续增加应用的功能项), 两个Panel控件(panel1和panel2控件是两个目标区,用于将ToolStrip控件中的子项拖放到的目标区域,在目标区域中打开或执行ToolStrip控件子项) 请问下,怎么样实现如下两个功能: 1.实现鼠标选中ToolStrip控件的子

winform求教,控件里输入的数值怎么转换数据类型

问题描述 winform求教,控件里输入的数值怎么转换数据类型 怎么将在 textbox 里输入的数值转换成 int 类型或 double 类型 解决方案 if(!string.empty(textbox.text)) { int value = int.parse(textbox.text); }

MFC 动修改里面所有项目中所有的对话框上的控件tab顺序

问题描述 MFC 动修改里面所有项目中所有的对话框上的控件tab顺序 现在要求写一个程序,可以选择指定的SLN文件,自动修改里面所有项目中所有的对话框上的控件tab顺序.具体要求为把所有控件按左上角的点字典序排序.

用Winform开发了一个程序,界面上的控件在Win7下是基本对齐的,到了WindowsServer2008下就变的完全对不齐了?请问这是什么原因?

问题描述 用Winform开发了一个程序,界面上的控件在Win7下是基本对齐的,到了WindowsServer2008下就变的完全对不齐了?请问这是什么原因?RT 解决方案 解决方案二:不知道你是用什么方法"对齐"的,所以无法判断.比如说你用"空格"来搞什么"对齐",那么不同系统的同一个主题下的细节设置也是有调整的,空格在高版本的windows下肯定就变宽了一些,那么自然在高版本windows下就"鼓出去"了.你用于"

asp.net中的文件上传控件能否打开一个固定文件夹然后再选择文件

问题描述 asp.net中的文件上传控件能否打开一个固定文件夹然后再选择文件asp.net中的文件上传控件能否打开一个固定文件夹然后再选择文件我现在要上传文件,但是在点击浏览的时候我想要打开一个指定的目录,然后在这个目录中选择文件..用什么方法能够实现呢?请各位大侠帮忙呀!!!!!!!!!??????????????????????????谢谢各位!!!!!!!! 解决方案 解决方案二:属于客户端程序,安全考虑的话怕不可行解决方案三:可以,将所选目录文件列出就行了,用常用的IO操作就能实现CSD