MessageBox阻塞程序,请问高手有其它语句吗?

问题描述

各位高手,目标是弹出一个对话框,但希望不管有没有对该对话框进行操作,程序都继续执行下去。而使用MessageBox,必须操作对话框后,程序才继续执行。请问C#中有类似MessageBox功能,但不会阻塞的语句吗?如果没有,为什么呢?C#原理上无法实现?还是现实的编程中,不需要这种语句?还是仅仅是C#语言的缺少这个功能?(那为什么开发出这种语言的人后来不增加这个功能呢?)

解决方案

解决方案二:
MessageBox叫做“模态对话框”,它的设计目的就是阻塞用户操作,(它是25年前微软设计出来的概念)就相当最近几年出现的“遮罩”一样,目的都是刻意避免用户操作到其它东西。由于它是25年前的VisualBasicforDos1.0就有的设计(或许在微软更早的QuickBasic中就有了),因此在.netwinform、WPF中继承下来。微软的东西,你懂的,许多几十年前的程序还能当今的windows系统下运行,不像其它某些系统、开发环境总是在升级时骗粉丝、不兼容以前的东西。如果你需要一个非模态对话框,你完全可以创建一个自定义的Form然后Show这个窗口,这就OK了。因为没任何技术含量,所以.net完全用不着给你设计什么其它的MessageBox语句。以前的这个MessageBox甚至你都无需使用。
解决方案三:
你自定义一个对话Form,然后加载它,看看麻烦吗?
解决方案四:
嗯,我查了一下,MessageBox是从QBasic中就内置的(那时候)重要语句。我们理解微软开发工具从上个世纪80年代到2006年前的风格,就能比较好地理解它许多语法现象,特别是basic的风格影响了许多开发工具设计,微软从20年前就实行了“每日构造”技术管理方法。MessageBox就是如此。2006年左右微软换了ceo,之后发生了比较大的改变,出现了比较多的“自杀式”的趋势。
解决方案五:
自己写一个From窗口,然后Show出来就行了,在加个托管事件回掉。
解决方案六:
在.net中,你可以自定义一个漂亮的对话Form,然后使用任何Form都有的ShowDialog方法来模态显示它。你完全用不着几十年前的MessageBox。我不是说不让你使用MessageBox,恰恰相反,我说的是如何真正理解MessageBox。不要钻技术的牛角尖,而要理解它的历史。
解决方案七:
自己写个form,然后show你这个form,而不是showmessage
解决方案八:
楼上的大神说的都对..不过我也试过用多线程去解决这个问题...现在的关键是..你具体需求是什么==
解决方案九:
程序运行中总是弹出MessageBox,显然是很讨厌的(自定义的非模态窗口也是这样)如果你确实需要展示出一些中间结果,那么你可以放到状态栏中,或者在界面中开辟一个显示区域甚至可以直接对标题栏赋值
解决方案十:
请问自己写个debugForm,如何和自己的程序联系起来呢?例如我有一个Form1,里面一个按钮单击事件对应我一个自己写的类A。那么我想调试类A里面的语句,我新建的debugForm如何才能“插入”我的类A里面呢?我知道可以用事件,但我debug的时候想show一下类A的某个循环或者参数,如何反映到debugForm上呢?
解决方案十一:
这个需求的话直接用label显示这个message就好了
解决方案十二:
引用10楼shoppo0505的回复:

这个需求的话直接用label显示这个message就好了

顶一下
解决方案十三:
写一个Form专用于信息的显示。
解决方案十四:
各位高手,我的问题是:如何把自己做的debugForm和我写的某个类(叫做user吧)联系起来?例如,在Form1里面,我可以在某个按钮事件里面插入我写的user类的某个方法(实例化后)。然而,反过来是不行,我无法在user类中插入Form1的某个按钮事件,或者其它label事件等等。如果我自己写个debugForm,会不会像无法访问Form1一样,user类无法访问debugForm呢?classUser(){inti=1;这里要显示自己写的debugForm显示i应该怎么写?}
解决方案十五:
请问高手在哪呢?
解决方案:
没有人回复?
解决方案:
弄一个遮挡的提示框,冒泡显示3s就自动隐藏那种。
解决方案:
你弄一个LABEL显示一下就好了,或者弄一个普通的窗口也行,用Show()方法不会阻塞.
解决方案:
自己写个非模式窗口就可以了
解决方案:
自己NEW一个对话框出来啊,不要用模态不就不会阻塞了么

时间: 2024-11-05 06:03:13

MessageBox阻塞程序,请问高手有其它语句吗?的相关文章

修改数据库字段-请问怎么用sql语句去修改sqlite中的数据字段的类型呢?

问题描述 请问怎么用sql语句去修改sqlite中的数据字段的类型呢? 我现在想写一个方法,用来修改sqlite数据库中某个表中的某个列的类型,因为现在客户需要发生变化了,我需要在数据完整的情况下吧数据类型给改变了,也就是说我不能替换数据库,哪就只有用sql语句去修改类型了,跪求高手... 解决方案 sqlite数据库中数据类型存在sqlite_master表中 select sql from sqlite_master where tb_name='tbname' 把这条sql语句改了,表结构

win32-在devc++写的程序在xp系统上运行 提示不是有效的32位程序 请问是怎么回事?

问题描述 在devc++写的程序在xp系统上运行 提示不是有效的32位程序 请问是怎么回事? 源码如下 #include <stdio.h> #include <windows.h> #include <mmsystem.h> #include <Winable.h> #pragma comment(lib, "winmm.lib") int main() { PlaySound (TEXT("Light.wav"),

matlab程序进不了if语句,求解答

问题描述 matlab程序进不了if语句,求解答 t=0.0; dt=0.01; m=0; while(t<=5.0) if(t==1.0) m=m+1; end t=t+dt; end 为什么进不了if语句呢? 解决方案 浮点数的比较应该用两数相减取绝对值小于某个很小的数的方式进行,因为浮点数可能存在误差.

c c++-求用c编写的一个简单的爬虫程序,高手赐教,不胜感激

问题描述 求用c编写的一个简单的爬虫程序,高手赐教,不胜感激 本人是初学者,要编写一爬虫程序,抓取60多万个网页上的信息,实在是无从下手,请高手给一个能看得懂的简单的爬虫程序学习用,多谢 解决方案 我也要写一个C爬虫,不过遇到了一些问题,比如58这样的网站,用getaddrinfo返回的ip无法连接,已经耽误了我好几天了,别的问题到还没遇到

请问一下这个while语句 谢谢 各位!

问题描述 请问一下这个while语句 谢谢 各位! int i, num; i = 1; num = 51; while (i <= 51) { if (num % i == 0) { printf("%d ",i); } i++; } 为什么这个i++要写在if语句外面啊 解决方案 while里面有两个语句,前面那个是if的复合语句,后面那个是i++语句:如果i++在if里面,那么while就只有一个语句,i++就没有用了 解决方案二: 找51的约数 不写在外面怎么遍历呢 if

m myaddin run-C#程序麻烦高手解释一下,小弟先谢谢了

问题描述 C#程序麻烦高手解释一下,小弟先谢谢了 using System; using System.Threading; namespace Example_L2_Basic_Device_Access { [System.AddIn.AddIn("S", Version = "4", Publisher = "aaa", Description = "Provides examples on how to communicate

普通计算器--能够自己写入相关运算方式程序--请问大神们,有什么好的建议。

问题描述 普通计算器--能够自己写入相关运算方式程序--请问大神们,有什么好的建议. 日常中用的普通计算器,能够进行加减乘除的就行.可以自己烧录相关程序. 解决方案 你到底问什么问题?是你希望购买一个可以编程的计算机,还是你希望自己开发这样的设备,或者是你希望写一个程序模仿计算器? 解决方案二: 单片机+液晶屏+键盘.这应该算是嵌入式了吧. 解决方案三: 直接再重新用单片机控制设计一个计算器, 解决方案四: 1+2*3=9还是7.

android-第一个安卓程序,eclipse不识别语句怎么办

问题描述 第一个安卓程序,eclipse不识别语句怎么办 ```按照书上写的修改strings.xml fist_layout.xml 和Androidmanifest.xml后还是不能运行,好像一个包不能识别,按照书上装了android2.2,新手第一次发帖,求解答 解决方案 把import android.R删掉,按ctrl + O选择com.example.two.R 解决方案二: android.R 引入不对,引入你自己工程的R文件. 解决方案三: 这个是有的包没有导入进来的原因吧 解决

桂林网友-C#程序请问如何隐藏一个控制台窗口

问题描述 C#程序请问如何隐藏一个控制台窗口 一个带Windows窗体的C#程序,用csc命令编译成exe可执行文件后,执行时总带有一个控制台窗口,请问如何在程序运行时,怎么能不出现那个黑呼呼的控制台窗口?应该如何修改下面的程序呢?谢谢大家的帮助,_桂林网友提问. 程序是这样的: using System; using System.Drawing; using System.Windows.Forms; namespace Ganxu1 { public class SimpleForm :