积极答复者
如何使得程序可以连续弹出窗口?

问题
答案
-
While True
MessageBox.Show("Hello")
End While- The blog of typewriter職人
- Convert C# to VB.NET
- /*If my concept is wrong ,please correct me.Thanks.*/
- 已建议为答案 ThankfulHeartModerator 2012年3月17日 8:32
- 已标记为答案 LYP VB Learner 2012年3月17日 12:28
-
请将问题描述清楚,你是要连续弹出“窗口”还是“消息框”?
就是说,你要弹出MessageBox还是Form。
还有你是希望等待用户响应后再弹出新的还是不需要等待用户按下确定就弹出新的?
1、弹出窗口
使用窗体数组就可以解决。
在Form1中加入一个Button,命名Button1,其Click过程如下:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim forms(10) As Form1 For i As Integer = 0 To 10 forms(i) = New Form1 forms(i).Show() Next End Sub
运行,点击Button1,就会连续弹出11个窗口。
对上述代码作一些修改,修改如下:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim forms(2) As Form1 For i As Integer = 0 To 2 forms(i) = New Form1 forms(i).ShowDialog() Next End Sub
这样,点击Button1后,就会在弹出的窗口关闭后,再弹出新的窗口,总共弹出11个。
2、弹出消息框
还是在Form1,Button1里,点击过程改成这样:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Do MsgBox("This is a messagebox.") Loop End Sub
这个是和楼上一样的方法,也就是按下确定后才会弹出新的消息框。这个是无限的,要有限的话就要用For或While。
如果你想要连续弹出不经用户响应,用MessageBox是不行的,除非你创建很多个线程,每个线程都弹出一个。
如果用VBS,可以使用popup。
多线程代码实现如下:
Public Class Form1 Dim Threads(10) As System.Threading.Thread Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click For i As Integer = 0 To 10 Dim ShowMsgThread As New System.Threading.Thread(AddressOf Me.ShowMsg) Me.Threads(i) = ShowMsgThread Me.Threads(i).Start() Next End Sub Private Sub ShowMsg() MsgBox("This is a messagebox.") End Sub End Class
这样写就可以连续弹出11个MessageBox了。
码字辛苦,希望采纳。
也希望能解决您的问题,如果您还有疑问,欢迎继续回复。
- 已建议为答案 ThankfulHeartModerator 2012年3月17日 8:32
- 已标记为答案 LYP VB Learner 2012年3月17日 12:28
-
楼主,我没有明白你为什么需要连续弹出对话框?因为如果按照Shadow Happy(也就是你的意思,你的程序根本无法继续使用,因为一直弹框,要死机的或者无法控制其它东西了)
最简单的办法(弹出N个对话框):
Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click For i As Integer = 1 To N ShowMsg() Next End Sub Private Sub ShowMsg() MsgBox("This is a messagebox.") End Sub End Class
- 已建议为答案 ThankfulHeartModerator 2012年3月17日 8:32
- 已编辑 ThankfulHeartModerator 2012年3月17日 8:44
- 已标记为答案 LYP VB Learner 2012年3月17日 12:28
全部回复
-
While True
MessageBox.Show("Hello")
End While- The blog of typewriter職人
- Convert C# to VB.NET
- /*If my concept is wrong ,please correct me.Thanks.*/
- 已建议为答案 ThankfulHeartModerator 2012年3月17日 8:32
- 已标记为答案 LYP VB Learner 2012年3月17日 12:28
-
请将问题描述清楚,你是要连续弹出“窗口”还是“消息框”?
就是说,你要弹出MessageBox还是Form。
还有你是希望等待用户响应后再弹出新的还是不需要等待用户按下确定就弹出新的?
1、弹出窗口
使用窗体数组就可以解决。
在Form1中加入一个Button,命名Button1,其Click过程如下:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim forms(10) As Form1 For i As Integer = 0 To 10 forms(i) = New Form1 forms(i).Show() Next End Sub
运行,点击Button1,就会连续弹出11个窗口。
对上述代码作一些修改,修改如下:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim forms(2) As Form1 For i As Integer = 0 To 2 forms(i) = New Form1 forms(i).ShowDialog() Next End Sub
这样,点击Button1后,就会在弹出的窗口关闭后,再弹出新的窗口,总共弹出11个。
2、弹出消息框
还是在Form1,Button1里,点击过程改成这样:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Do MsgBox("This is a messagebox.") Loop End Sub
这个是和楼上一样的方法,也就是按下确定后才会弹出新的消息框。这个是无限的,要有限的话就要用For或While。
如果你想要连续弹出不经用户响应,用MessageBox是不行的,除非你创建很多个线程,每个线程都弹出一个。
如果用VBS,可以使用popup。
多线程代码实现如下:
Public Class Form1 Dim Threads(10) As System.Threading.Thread Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click For i As Integer = 0 To 10 Dim ShowMsgThread As New System.Threading.Thread(AddressOf Me.ShowMsg) Me.Threads(i) = ShowMsgThread Me.Threads(i).Start() Next End Sub Private Sub ShowMsg() MsgBox("This is a messagebox.") End Sub End Class
这样写就可以连续弹出11个MessageBox了。
码字辛苦,希望采纳。
也希望能解决您的问题,如果您还有疑问,欢迎继续回复。
- 已建议为答案 ThankfulHeartModerator 2012年3月17日 8:32
- 已标记为答案 LYP VB Learner 2012年3月17日 12:28
-
楼主,我没有明白你为什么需要连续弹出对话框?因为如果按照Shadow Happy(也就是你的意思,你的程序根本无法继续使用,因为一直弹框,要死机的或者无法控制其它东西了)
最简单的办法(弹出N个对话框):
Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click For i As Integer = 1 To N ShowMsg() Next End Sub Private Sub ShowMsg() MsgBox("This is a messagebox.") End Sub End Class
- 已建议为答案 ThankfulHeartModerator 2012年3月17日 8:32
- 已编辑 ThankfulHeartModerator 2012年3月17日 8:44
- 已标记为答案 LYP VB Learner 2012年3月17日 12:28