Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
vb.net应用程序在循环期间没有响应_Vb.net_Loops_Character_Do While_Do Loops - Fatal编程技术网

vb.net应用程序在循环期间没有响应

vb.net应用程序在循环期间没有响应,vb.net,loops,character,do-while,do-loops,Vb.net,Loops,Character,Do While,Do Loops,我一直在尝试创建一个程序,它可以显示所有可能的字母组合,以及一些标点符号。它首先在每个字母中运行一个字符,然后添加另一个字符,并执行相同的操作,每个字符仅在前一个字符再次运行每个字母时前进 当然,我遇到了一些问题。每当我在编译器中测试它时,一切都正常。但是,当我尝试运行完成的应用程序时,它只会运行到添加第3个或第4个字符时,此时它停止响应。我的代码如下: Imports System.Windows.Forms Public Class Form1 Dim blnAutoAdv

我一直在尝试创建一个程序,它可以显示所有可能的字母组合,以及一些标点符号。它首先在每个字母中运行一个字符,然后添加另一个字符,并执行相同的操作,每个字符仅在前一个字符再次运行每个字母时前进

当然,我遇到了一些问题。每当我在编译器中测试它时,一切都正常。但是,当我尝试运行完成的应用程序时,它只会运行到添加第3个或第4个字符时,此时它停止响应。我的代码如下:

    Imports System.Windows.Forms

Public Class Form1
    Dim blnAutoAdvance As Boolean = False
    'Dim strOutputDisplay As String = ""
    Dim intTotChars As Integer = 57
    Dim intCharToWrite As Integer = 1 'the character to be written
    Dim intDigits As Integer = 0
    Dim finDisplay(1) As Char
    Dim intDigToWrite As Integer = 0
    Dim intTotDig As Integer = 1
    Dim intTotDigsave As Integer = 1
    Dim intCharToEdit As Integer = 1 ' chooses which char to edit

    Dim Character(32) As Char

    Dim AllCurrentChars(1) As Integer


    Private Sub btnScroll_Click(sender As Object, e As EventArgs) Handles btnScroll.Click
        Do
            finDisplay(intCharToEdit) = Character(intCharToWrite)
            Do While finDisplay(intCharToEdit) = "+"
                finDisplay(intCharToEdit) = "a"
                intCharToEdit = intCharToEdit + 1
                If intCharToEdit >= intTotDig Then
                    intTotDig = intCharToEdit
                    ReDim Preserve finDisplay(intTotChars)
                    ReDim Preserve AllCurrentChars(intTotChars)

                End If
                AllCurrentChars(intCharToEdit) += 1
                If AllCurrentChars(intCharToEdit) = 33 Then
                    AllCurrentChars(intCharToEdit) = 1
                End If
                finDisplay(intCharToEdit) = Character(AllCurrentChars(intCharToEdit))

            Loop
            intCharToEdit = 1
            lblDisplay.Text = finDisplay(intDigToWrite)
            intDigToWrite += 1
            Do
                lblDisplay.Text = lblDisplay.Text & finDisplay(intDigToWrite)
                intDigToWrite += 1
            Loop While intDigToWrite <= intTotDig
            intDigToWrite = 0
            intCharToWrite += 1
            If intCharToWrite = 33 Then
                intCharToWrite = 1
            End If
            Refresh()
        Loop
    End Sub


    Private Sub btnStop_Click(sender As Object, e As EventArgs) Handles btnStop.Click

    End Sub

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Character(1) = "a"
        Character(2) = "b"
        Character(3) = "c"
        Character(4) = "d"
        Character(5) = "e"
        Character(6) = "f"
        Character(7) = "g"
        Character(8) = "h"
        Character(9) = "i"
        Character(10) = "j"
        Character(11) = "k"
        Character(12) = "l"
        Character(13) = "m"
        Character(14) = "n"
        Character(15) = "o"
        Character(16) = "p"
        Character(17) = "q"
        Character(18) = "r"
        Character(19) = "s"
        Character(20) = "t"
        Character(21) = "u"
        Character(22) = "v"
        Character(23) = "w"
        Character(24) = "x"
        Character(25) = "y"
        Character(26) = "z"
        Character(27) = " "
        Character(28) = "."
        Character(29) = ","
        Character(30) = "!"
        Character(31) = "?"
        Character(32) = "+"

    End Sub
End Class
导入System.Windows.Forms
公开课表格1
Dim blnAutoAdvance作为布尔值=False
'Dim strOutputDisplay As String=“”
整数形式的Dim intTotChars=57
Dim intCharToWrite As Integer=1'要写入的字符
整数为0的整数位数
变暗显示(1)为字符
Dim intDigToWrite为整数=0
Dim intTotDig为整数=1
Dim intTotDigsave As Integer=1
Dim intCharToEdit As Integer=1'选择要编辑的字符
作为字符的变暗字符(32)
将AllCurrentChars(1)设置为整数
私有子btnScroll\u单击(发送者作为对象,e作为事件参数)处理btnScroll。单击
做
finDisplay(intCharToEdit)=字符(intCharToWrite)
Do While finDisplay(intCharToEdit)=“+”
finDisplay(intCharToEdit)=“a”
intCharToEdit=intCharToEdit+1
如果intCharToEdit>=INTTOTDIGN,则
intTotDig=intCharToEdit
ReDim保留finDisplay(intTotChars)
ReDim保留所有当前字符(intTotChars)
如果结束
AllCurrentChars(intCharToEdit)+=1
如果AllCurrentChars(intCharToEdit)=33,则
AllCurrentChars(intCharToEdit)=1
如果结束
finDisplay(intCharToEdit)=字符(AllCurrentChars(intCharToEdit))
环
intCharToEdit=1
lblDisplay.Text=finDisplay(intDigToWrite)
intDigToWrite+=1
做
lblDisplay.Text=lblDisplay.Text&finDisplay(intDigToWrite)
intDigToWrite+=1

循环而intDigToWrite如果循环需要很长时间,UI没有时间更新自身(一次只能做一件事)。您需要在不同的线程中执行逻辑。第一个示例与您的应用程序类似。