搜索
bottom↓
回复: 9

咨询一个C#的图片控件的使用的问题

[复制链接]

出0入0汤圆

发表于 2019-1-27 17:53:16 | 显示全部楼层 |阅读模式
我想建立最多16个图片控件,默认都是隐藏的,当收到报文后根据报文内容决定显示哪几个图片控件,同时根据报文内容决定加载哪种图片。
现在的情况时,每次收到数据后,修改图片控件的Visible=true,然后修改图片,然后程序似乎就死了,再也收不到数据了。
如果屏蔽修改图片控件属性的操作或者只是修改图片,就可以一直收到数据。

对C#不熟悉,请高手指点下,这是哪里用的不对啦?

出0入0汤圆

发表于 2019-1-27 18:11:08 | 显示全部楼层
你是在另外的线程更新了UI控件属性么?

出0入0汤圆

发表于 2019-1-27 19:57:27 | 显示全部楼层
楼主要是在线程里更新图片控件状态要用以下的方法:
  1. public void UpdateImageState(bool state)
  2.         {
  3.             if(this.InvokeRequired)
  4.             {
  5.                 this.BeginInvoke(new Action<bool>(UpdateImageState), state);
  6.             }
  7.             else
  8.             {
  9.                 this.pictureBox1.Visible = state;
  10.             }
  11.         }
复制代码

出0入0汤圆

发表于 2019-1-27 20:05:25 | 显示全部楼层
修改图片的时候必须在UI 线程。是不是你接收数据的函数不在UI线程?

出0入0汤圆

 楼主| 发表于 2019-1-27 20:50:35 | 显示全部楼层
是在UDP接收回调中更新了pictureBox的属性,如3楼所示,是用了代理处理了,但是代码好像和3楼略有差别,是不是代理不止一个套路。

我比较奇怪的是,收到报文后,设置新的图片一切正常,但是如果同时设置Visible属性,则死了。不知道这块有什么禁忌吗?

出20入62汤圆

发表于 2019-1-27 22:08:58 | 显示全部楼层
你说的“死了“”~是一个红色的大红叉吧

出0入0汤圆

 楼主| 发表于 2019-1-27 22:11:59 | 显示全部楼层
本帖最后由 shiva_shiva 于 2019-1-27 22:22 编辑
天下乌鸦一般黑 发表于 2019-1-27 22:08
你说的“死了“”~是一个红色的大红叉吧


出现过大红叉,这个问题还没仔细查。

死了的意思是收到一包数据后,刷新pictureBox控件后再也收不到数据了,数据UDP数据。

明天我把代码发上来吧。

出0入0汤圆

发表于 2019-1-27 22:20:32 | 显示全部楼层
shiva_shiva 发表于 2019-1-27 22:11
出现过大红叉,这个问题还没仔细查。

死了的意思是收到一包数据后,刷新pictureBox空间后再也收不到数据 ...

应该是,你处理UDP数据的线程,跨线程操作窗体控件,异常退出了,也就是说你这个操作窗体的线程挂了。

出20入62汤圆

发表于 2019-1-27 22:38:30 | 显示全部楼层
shiva_shiva 发表于 2019-1-27 22:11
出现过大红叉,这个问题还没仔细查。

死了的意思是收到一包数据后,刷新pictureBox控件后再也收不到数据 ...

说下我遇到的吧。希望有用。我是一边摸索着一边学做winform,遇到过类似现象,mschart控件总是概率出现红叉。
通过两个办法解决的。
1、有auto设置的慎用,都是自己赋值来实现的,例如x轴y轴最大最小值之类的。
2、用backgroundworker把刷新界面和后台数据分开处理。

出0入0汤圆

 楼主| 发表于 2019-1-28 11:27:13 | 显示全部楼层
确实是代理写的不对。

原来比猫画虎,画错了。。。重新梳理后,运行了一会都正常。

感谢大家!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-9 03:02

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表