登陆 | 免费注册(只需一分钟) | 会员中心

聚宝网   购物专题 基金专题 性专题 饮食专题 教育专题 生活大参考 园林资讯 园艺库 健康专题
  论文专题 家庭养花 园林景观 盆景奇石 激情图库 农业资料库 园林古建 英文站 花卉栽培

聚宝网免费为您提供 最新IT资讯

 

首页 > FAQ > VB.NET
顶层窗体的问题.高手请进呀!在线等!
时间:2007-06-18  www.jubao163.com  来源: 不详
所属分类:.NET技术 VB.NET
-----------------------------------------

我现有个多线程,在其中有一判断,如果某个值出错,就弹出一信息.要求此信息置顶,且要求弹出此信息的同时,并不中断进程的执行.也就是说不像MESSAGEBOX.SHOW一样.它会中断进程的进行!

高手帮个忙!

----------------------------------------------------------------------

MessageBox.Show相当于执行了ShowDialog,你自已用一个Form来做一个窗口,用Show显示就可以了.

--------------------------------------------------------

忘了补充一句,我现在用的就是做一个FORM再SHOW.可放在线程中不行.

第一,会出现死机现象.也许是因为太频繁地SHOW吧!

第二,线程被NOTHING掉,其自动消失

--------------------------------------------------------

程序中的一段:
while(blnrun)

.....

 If 条件为真 Then
            enfrmdialog.DefInstance.lbltext.Text = str_message
            enfrmdialog.DefInstance.Show()
        End If
end while

......

runthread=nothing

--------------------------------------------------------

朋友们快提个建议呀!急着用呢

--------------------------------------------------------

在线程中的建立的窗体和你的主窗体线程成了两家,会有冲突,用ShowDialog显示的没有问题是因为此时阻止了运行才不有报错.
你可以在线程中通过主窗体的Invoke来调用一个方法,在这个主窗体的方法里Show(Owner)出来个窗体就可以了.

这样的问题在CSDN有不少,都是关于线程和窗体控件的,你找一下吧.

--------------------------------------------------------

示意代码:

Public Class MyMessageForm
  Inherits Form

  Private New()
    Me.TopMost = True
  End Sub

  Private Shared Current As MyMessageForm

  Public Shared Sub Close()
    If Current IsNot Nothing Then Current.Close
  End Sub

  Public Shared Sub Show(msg As String)
    If Current Is Nothing OrElse Current.IsDisposed Then
       Current = New MyMessageForm
    End If

    Current.ShowMessage(msg)
  End Sub 

  Private Sub ShowMessage(msg As String)
    ’参考跨线程显示信息
    ’If Me.InvokeRequired
  End Sub
End Class

--------------------------------------------------------

兄弟伙,我帮你顶一哈

--------------------------------------------------------

兄弟我笨,还没学会使用Invoke的用法.

由于时间急,我先暂时试出了一个好方法.过了这一期一定花时间学学Invoke的用法.
我的方法是在程序的第一个窗体加载的同时也定义一个全局窗体变量,并且让其Show出来,But隐藏起来.需要的时候再显示出来.

哈...既然达到我的要求了.可我知道这不是一个程序员所采用的策略.我一定会加油的.谢谢各位!有关Invoke的问题我还会再请问你们哦!



推荐文章
联盟网站

浙ICP备 :07003766号 Copyright © 2001-2007 JUBAO163,All rights reserved.