| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1375 人关注过本帖
标题:请教如何循环中途停止
取消只看楼主 加入收藏
mp654k
Rank: 2
等 级:论坛游民
帖 子:74
专家分:70
注 册:2011-7-9
结帖率:66.67%
收藏
已结贴  问题点数:0 回复次数:5 
请教如何循环中途停止
比如button1.click的事件如下
dim a as integer
for i as integer=0 to 10000000
    a+=i
end for
textbox1.text=a
如何单击button1后,循环没有结束前,button1.text显示为"终止",而且此时点击它时循环停下,输出此时的a的值到textbox1,求代码,多线程也行

[ 本帖最后由 mp654k 于 2011-7-31 13:32 编辑 ]
搜索更多相关主题的帖子: 如何 而且 多线程 
2011-07-31 13:31
mp654k
Rank: 2
等 级:论坛游民
帖 子:74
专家分:70
注 册:2011-7-9
收藏
得分:0 
经测试,下面代码可以:
Public Class Form1
    Dim Button1Count As Short = 0
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Button1.Text = "开始"
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Button1Count += 1
        Dim a As Integer
        For i As Integer = 0 To 10000000
            a += 1
            Application.DoEvents()
            If Button1Count Mod 2 = 1 Then
                Button1.Text = "停止"
            Else
                Button1.Text = "开始"
                TextBox1.Text = a
                Exit Sub
            End If
        Next
        TextBox1.Text = a
        Button1.Text = "开始"
    End Sub
End Class
但这里a不是全局变量,换成全局变量时不能达到效果,我需要a是全局变量,继续请教楼上高手
2011-08-01 00:52
mp654k
Rank: 2
等 级:论坛游民
帖 子:74
专家分:70
注 册:2011-7-9
收藏
得分:0 
如果a是全局变量,代码如下,最后显示出来始终是0,不明白为什么
Public Class Form1
    Dim Button1Count As Short = 0
    Dim a As Integer
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Button1.Text = "开始"
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Button1Count += 1
        For i As Integer = 0 To 10000000
            a += 1
            Application.DoEvents()
            If Button1Count Mod 2 = 1 Then
                Button1.Text = "停止"
            Else
                Button1.Text = "开始"
                TextBox1.Text = a
                a = 0
                Exit Sub
            End If
        Next
        TextBox1.Text = a
        Button1.Text = "开始"
    End Sub
End Class
2011-08-01 01:06
mp654k
Rank: 2
等 级:论坛游民
帖 子:74
专家分:70
注 册:2011-7-9
收藏
得分:0 
试了,这样不行.第2次鼠标按下的时候确实停下了,也显示出来了此时的a值,但一松手就显示"1"了.
2011-08-01 12:58
mp654k
Rank: 2
等 级:论坛游民
帖 子:74
专家分:70
注 册:2011-7-9
收藏
得分:0 
想学一下委托,请高手用委托解决
2011-08-01 17:51
mp654k
Rank: 2
等 级:论坛游民
帖 子:74
专家分:70
注 册:2011-7-9
收藏
得分:0 
可是可以,不过比较勉强,其实用另外一个变量来保存a的值再赋给a也可以.但这只是我举的一个例子,实际情况比较复杂,我不希望用application.doevents这个方法.最好用委托解决,可惜不会,仍然非常感谢楼上高手.

[ 本帖最后由 mp654k 于 2011-8-1 19:13 编辑 ]
2011-08-01 19:11
快速回复:请教如何循环中途停止
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012148 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved