搜索
bottom↓
回复: 14

C# Messagebox.show,如何点击确认后才能操作主窗口

[复制链接]

出590入992汤圆

发表于 2019-11-15 16:59:29 | 显示全部楼层 |阅读模式
RT。
由于是用于提示的,现在希望点击Messagebox.show中的按键后才能操作主窗口。请问怎么做?
现在两种情况:
发现我写的界面中,有的是:点击关闭box后才能进行操作。有的是:不关闭box,也能操作主窗体。但是根据代码,根本看不出来为什么。
请熟悉的大神解答一下。

下面的代码:不关闭操作不了主窗口
  1. private void btn_StartUpgrade_Click(object sender, EventArgs e)
  2.         {
  3.             {  // 重新处理串口升级
  4.                 if( serialPort1.IsOpen == false )
  5.                 {
  6.                     try
  7.                     {
  8.                         serialPort1.Open();
  9.                     }
  10.                     catch
  11.                     {
  12.                         disPlayMessageBoxChOrEng("请检查通信口!", "Please check the communication port!"); // 这函数里面就是:Messagebox.show()。
  13.                         return;
  14.                     }
  15.                 }
  16.             }
  17. ......(其它内容)
复制代码


下面的代码:不关闭也能操作主窗口
  1. .....(其它内容)
  2. case 2: //  当反馈为02的时候,表示文件操作信息的反馈!
  3.                                     switch (dataBuf[3])
  4.                                     {
  5.                                         case 0x1:  // 删除单个文件
  6.                                         case 0x2:  // 删除全部文件
  7.                                         case 0x3:  // 整理文件
  8.                                             {
  9.                                                 CR.pRead = (UInt16)(CR.pRead + CR.MinLen);
  10.                                                 CR.pRead %= CR.MaxLength;
  11.                                             }
  12.                                             disPlayMessageBoxChOrEng("操作成功!","Operation done!");// 这函数里面就是:Messagebox.show()。
  13.                                             return;
  14.                                             break;
  15.                                         default:
  16.                                             break;
  17.                                     }
  18.                                     break;
  19. .....(其它内容)
复制代码

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出100入18汤圆

发表于 2019-11-15 17:07:09 | 显示全部楼层
你直接写类似这样的试试看:
MessageBox.Show("确定要删除"+xx+"吗?","警告!!!",MessageBoxButtons.OKCancel);

我记得MessageBox应该是需要响应才能操作主窗口的。

出0入0汤圆

发表于 2019-11-15 17:16:58 | 显示全部楼层
hcambridge 发表于 2019-11-15 17:07
你直接写类似这样的试试看:
MessageBox.Show("确定要删除"+xx+"吗?","警告!!!",MessageBoxButtons.OK ...

我记得也是,楼主封装的内容是不是有影响?

出0入0汤圆

发表于 2019-11-15 17:17:16 | 显示全部楼层
第一种 应该是 在UI线程中弹出的窗口,阻塞UI线程
第二种 是不是你在某个非UI线程中弹出的,如果是这样,没有阻塞UI线程,所有不影响操作。

出0入442汤圆

发表于 2019-11-15 17:19:05 来自手机 | 显示全部楼层
semonpic 发表于 2019-11-15 17:17
第一种 应该是 在UI线程中弹出的窗口,阻塞UI线程
第二种 是不是你在某个非UI线程中弹出的,如果是这样,没 ...

lz那肯定不是ui线程的窗口。c#虽然说ui容易崩溃(多线程频繁读写控件值必崩),但是至少层次比mfc要好很多,不至于出这种低级bug。

出0入25汤圆

发表于 2019-11-15 17:21:26 | 显示全部楼层
第二种,是不是在thread/task 里委托调用的啊?

出0入0汤圆

发表于 2019-11-15 17:30:38 | 显示全部楼层
wye11083 发表于 2019-11-15 17:19
lz那肯定不是ui线程的窗口。c#虽然说ui容易崩溃(多线程频繁读写控件值必崩),但是至少层次比mfc要好很 ...


兄弟,你给我整懵逼了,我说的到底有没有问题

出0入0汤圆

发表于 2019-11-15 18:14:02 | 显示全部楼层
MessageBox应该是需要响应才能操作主窗口的
自建窗体可以用模式窗体
Form fom= new Form();
fom.ShowDialog();

出0入0汤圆

发表于 2019-11-15 20:04:16 | 显示全部楼层
关键字,Modal

出0入0汤圆

发表于 2019-11-15 22:05:54 | 显示全部楼层
线程问题 用 Invoke  放到UI 线程来显示

出0入0汤圆

发表于 2019-11-15 22:18:03 | 显示全部楼层
分清messagebox 是从哪个线程弹出的

出0入0汤圆

发表于 2019-11-15 22:26:41 来自手机 | 显示全部楼层
我记得message.show()和message.showDialog就是楼主说的这种区别

出0入0汤圆

发表于 2019-11-15 23:26:18 来自手机 | 显示全部楼层
楼主应该是在在子线程中弹出的messagebox

出0入0汤圆

发表于 2019-11-16 07:58:47 来自手机 | 显示全部楼层
C#中有关UI的操作,特别是写访门口,要委托给UI调用,Invoke或采用异步BeginInvoke

出590入992汤圆

 楼主| 发表于 2019-11-16 08:16:36 | 显示全部楼层
hcambridge 发表于 2019-11-15 17:07
你直接写类似这样的试试看:
MessageBox.Show("确定要删除"+xx+"吗?","警告!!!",MessageBoxButtons.OK ...

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

本版积分规则

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

GMT+8, 2024-4-26 22:35

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

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