winform中用线程建一个自动关闭的提示窗口,但是窗口中的label不显示

问题描述

///<summary>///窗体加载///</summary>///<paramname="sender"></param>///<paramname="e"></param>privatevoidFrm主面_Load(objectsender,EventArgse){str="HelloWorld!";ThreadnonParameterThread=newThread(newThreadStart(Frm自消失提示框));nonParameterThread.Start();}privatevoidFrm自消失提示框(){Form1frmShowWarning=newForm1(str);//Form1为要弹出的窗体(提示框)Pointp=newPoint(Screen.PrimaryScreen.WorkingArea.Width-frmShowWarning.Width,Screen.PrimaryScreen.WorkingArea.Height);frmShowWarning.PointToScreen(p);frmShowWarning.Location=p;frmShowWarning.Show();for(inti=0;i<=frmShowWarning.Height;i++){frmShowWarning.Location=newPoint(p.X,p.Y-i);if(i<frmShowWarning.Height)Thread.Sleep(5);//将线程沉睡时间调的越小,窗口升起的越快elseThread.Sleep(5000);//将线程沉睡时间调的越大,窗口到顶停留时间越久}}

Form1中只有一个label,str给label.text赋值HelloWorld,结果窗口显示,也能正确关闭,但是label位置就是一个白条,包括设置的窗口样式,也没有

解决方案

解决方案二:
为什么不是用timer控件,设置定时时间,时间到了就弹出窗口;再开启另一个timer执行窗口的隐藏。
解决方案三:
你先不用穿值的方式,先直接给from1的label控件给定一个默认值,比如:123,然后在执行你的代码,看123能出来不,要是123能出来,那么就是你赋值没有成功的问题。然后你再跟踪代码,看什么情况。

时间: 2024-11-05 19:03:24

winform中用线程建一个自动关闭的提示窗口,但是窗口中的label不显示的相关文章

参数传递-c#用线程打开一个新窗口并传参数显示

问题描述 c#用线程打开一个新窗口并传参数显示 我想在form1用线程打开新的通知窗口form2,并传参数过去显示在这个窗口上,每个通知窗口显示一分钟,然后自动关闭.可能同时新建并显示三到四个这样的窗口,并不影响form1的正常运行.现在用百度到的方法,要么无法传参,要么显示秒退.求大神给个实例. 解决方案 不要在线程中创建窗口或者操作UI,应该用invoke传委托.传参数可以通过构造函数. 解决方案二: 建议你在程序中建立队列 Queue<string> infoQueue=new Queu

Winform子线程开启的窗体无法响应DragEnter事件?

问题描述 Winform子线程开启的窗体无法响应DragEnter事件? 本来是在Program.Main里面直接用Application.Run显示一个窗体,可以正常响应DragEnter事件,但是以如下方法显示该窗体的话,就无法正常响应DragEnter事件了,请问各位大神怎么破? 解决方案 好吧,我想到了另一个办法,不用子线程启动也可以关闭一个Form 解决方案二: 不要把界面放在额外的线程中运行,这是常识.天哪,你是从哪里学的C#. 解决方案三: ..囧,UI,都不是线程安全的

thread-android中用线程处理耗时操作后,获得不到数据怎么办

问题描述 android中用线程处理耗时操作后,获得不到数据怎么办 我用Thread处理一个耗时操作,不加的时候还能获得数据,但是慢.加上之后数据都获得不到 解决方案 能说清楚点吗?你做了什么耗时操作,网络请求还是本地处理? 加上之后log显示或者debug跟踪没有数据了吗? 解决方案二: 有可能是你刷新界面的时候不是在主线程刷新 class Task extends Thread{ @Override public void run() { //read data handler.post(n

设计-菜鸟提问:怎样建一个企业人事管理系统 用SQL和C++

问题描述 菜鸟提问:怎样建一个企业人事管理系统 用SQL和C++ 需建一个企业人事管理系统,因为概念结构设计用E-R图,可以顺便解释下什么是E-R图吗? 解决方案 数据库设计中重要的一环首先就是概念设计,也就是说,要从实际问题出发,排除非本质的东西,抽象出现实的数据结构之客观规律--即画出数据结构图--ER图. E-R方法是"实体-联系方法"(Entity-Relationship Approach)的简称.它是描述现实世界概念结构模型的有效方法.是表示概念模型的一种方式,用矩形表示实

winform程序打包时,winform中用的图片如背景、pictureBox中的图片要一起打包进去吗?

问题描述 winform程序打包时,winform中用的图片如背景.pictureBox中的图片要一起打包进去吗?winform编译生成时是不是已经嵌入了? 解决方案 解决方案二:要打包进去解决方案三:如果是一个exe就需要打包.其他的方式可以使用相对路径的方式.解决方案四:要打包进去的,要不然怎么根据路径找图片呀.解决方案五:添加文件,打包进去解决方案六:就放到你的程序一起打包进去解决方案七:会打包进去,不过最好放在资源文件里面~!不然可能会因为路径出问题~!解决方案八:不用打包吧,生成exe

winform中用datagirdview给oracle数据库添加数据怎么得到没有提那家成功的值

问题描述 winform中用datagirdview给oracle数据库添加数据怎么得到没有成功的值,并且在一个新的datgirdview中显示,麻烦说详细点 解决方案 解决方案二:意思就是一个个form中有两个datagirdview,其中一个要显示没有添加成功的值,怎么才能得到没有添加成功的值解决方案三:可以创建一个DataTabledtFail=newDataTale(); 在执行插入操作时,插入失败的添加到dtFail把dtFail作为新的DataGridView的数据源

java使用回调和线程处理一个耗时响应全过程

现在程序中有许多涉及长耗时响应过程的处理,比如访问WebService,远程调用,复杂处理等,如果我们使用直接顺序执行的方式进行处理有可能导致界面停顿,响应停止,无谓等待等缺陷,这是不应该的. 一个耗时响应过程应该采用回调和线程来处理,具体就是把原来的顺序执行修改为异步方式,并让被调用者调用调用者以获得执行结果.在附件的例子中,Viewer就是调用者,它代表界面,而LongTimeResponse是被调用者,它内部用线程启动一个耗时过程,执行完毕再通知调用者. Viewer类代码如下: publ

给Win7建一个“常用程序”菜单

很多人都喜欢将常用程序拖拽到桌面上,美其名曰"桌面快捷方式".不过随着使用时间的增加,这个快捷方式似乎也不怎么快捷.没有分类.无法分组,最关键的是当你的桌面布满窗口的时候,要想打开桌面上一个快捷方式,真比登天还难.其实在万能的Win7中,这个问题并没有大家想像中那么难以搞定.今天就教给大家一个办法,给你的Win7建一个"常用程序"菜单. 图1 用菜单访问"常用程序" 电脑常识 1.在电脑的某个位置建立一个文件夹(比如"C:常用程序&qu

Win7系统经常弹出“Windows检测到一个硬盘问题”提示窗口的故障原因及解决方法

  Win7系统经常弹出"Windows检测到一个硬盘问题"窗口,具体问题现象如下所示: 故障原因分析: 大部分是由于硬盘可能出现坏道引起的. 解决方法: 1.右键点击"计算机"选择"管理"; 2.打开计算机管理后,定位到"任务计划程序"; 3.展开左侧的Microsoft--Windows--Diskdianostic; 4.点击窗口中间的"Microsoft Windows DiskDiagnosticResol