C#串口如何委托 UI界面

我串口事件里面把数据接受到,但是我需要不在事件里面进行UI界面显示,请问有什么办法好呢?... 我串口事件里面把数据接受到,但是我需要不在事件里面进行UI界面显示,请问有什么办法好呢? 展开
 我来答
freeeeeewind
2015-03-03 · TA获得超过1万个赞
知道大有可为答主
回答量:3227
采纳率:94%
帮助的人:1361万
展开全部
private void serialPort1_DataReceived(object sender, 
    SerialDataReceivedEventArgs e)
{
    // 读取数据
    byte[] buffer = new byte[1024];            
    int count = serialPort1.Read(buffer, 0, buffer.Length);
    
    // 转换成16进制格式的字符串
    string s = string.Empty;            
    for (int i = 0; i < count; i++)     
    {
        s += string.Format("{0:x2} ", buffer[i]);
    }

    //在textBox1中显示
    ShowData(s);
}

// 定义一个委托
delegate void ShowDataDelegate(string s);
private void ShowData(string s)
{
    // 当跨线程刷新UI界面时
    if (textBox1.InvokeRequired)
    {
        // 使用委托发出ShowData(s)调用
        textBox1.Invoke(new ShowDataDelegate(ShowData), s);
        // 返回    
        return;
    }
    // 使用委托发出的ShowData(s)调用会跳到这来执行:在textBox1中显示
    textBox1.Text = s;
}
查晓筠0i5
2015-03-03 · TA获得超过2752个赞
知道大有可为答主
回答量:2.1万
采纳率:1%
帮助的人:4975万
展开全部
关注这个问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式