Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.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_Vb.net 2010_Subroutine - Fatal编程技术网

vb.NET如何在子系统中获得更多输入

vb.NET如何在子系统中获得更多输入,vb.net,vb.net-2010,subroutine,Vb.net,Vb.net 2010,Subroutine,首先感谢您抽出时间 我正在进行风险编程(我知道这没用,我17岁,需要一个项目),在某一点上,我点击一个按钮结束我的轮次,现在我的程序将执行以下操作: 计算你将得到的补充兵力->让你选择你想要的地方->调整我的数据库 我的问题是,当我的另一个子系统“暂停”时,我希望能够再次单击表单上的按钮(并执行它们的子系统),并在我没有更多部队补充时再次启动它 我知道这个问题并不符合规则,所以我也会给你一些代码:p If MsgBox("Beurt beëindigen?", MsgBoxStyle.OkCan

首先感谢您抽出时间

我正在进行风险编程(我知道这没用,我17岁,需要一个项目),在某一点上,我点击一个按钮结束我的轮次,现在我的程序将执行以下操作:

计算你将得到的补充兵力->让你选择你想要的地方->调整我的数据库

我的问题是,当我的另一个子系统“暂停”时,我希望能够再次单击表单上的按钮(并执行它们的子系统),并在我没有更多部队补充时再次启动它

我知道这个问题并不符合规则,所以我也会给你一些代码:p

If MsgBox("Beurt beëindigen?", MsgBoxStyle.OkCancel, "Are u sure?") = MsgBoxResult.Cancel Then

        Exit Sub

    End If

    Replenishment = 0

    For i = 0 To 39

        If Me.Controls(ds.Tables("Map").Rows(i).Item("Regio").ToString).Tag = User Then

            Replenishment += 1

        End If

    Next i

    Replenishment /= 2

    RecruteerPanel.Visible = True
    MRecruten.Text = Replenishment
    RTroepen.Maximum = MRecruten.Text

    While MRecruten.Text > 0

'this is where my sub should pause and allow me to interact with my form again
'I used the while loop because I'm used to programming with my calculator and that would be the way to do it

    End While

    For i = 0 To MaxRows - 1

        MapRegion = ds.Tables("Map").Rows(i).Item("Regio").ToString
        'naam regio bepalen

        ds.Tables("Map").Rows(i).Item("Eigenaar") = Me.Controls(MapRegion).Tag
        'tag opslaan
        ds.Tables("Map").Rows(i).Item("Troepen") = Me.Controls(MapRegion).Text
        'Troepen opslaan

    Next i

    For i = 0 To 3

        MsgBox(ds.Tables("Players").Rows(i).Item("Turn") & ds.Tables("Players").Rows(i).Item("Players"))

        If ds.Tables("Players").Rows(i).Item("Turn") = True And i < 3 Then

            ds.Tables("Players").Rows(i).Item("Turn") = False
            ds.Tables("Players").Rows(i + 1).Item("Turn") = True

            Exit For

        ElseIf ds.Tables("Players").Rows(i).Item("Turn") = True And i = 3 Then

            ds.Tables("Players").Rows(i).Item("Turn") = False
            ds.Tables("Players").Rows(0).Item("Turn") = True

        End If

    Next i



    sql = "SELECT * FROM Map"
    da = New OleDb.OleDbDataAdapter(sql, con)
    Dim cb As New OleDb.OleDbCommandBuilder(da)

    da.Update(ds, "Map")

    sql = "SELECT * FROM Players"
    da = New OleDb.OleDbDataAdapter(sql, con)
    Dim cb2 As New OleDb.OleDbCommandBuilder(da)

    da.Update(ds, "Players")

End Sub
如果MsgBox(“Beurt beëindigen?”,MsgBoxStyle.ok取消,“确定吗?”)=MsgBoxResult。然后取消
出口接头
如果结束
补给=0
对于i=0到39
如果Me.Controls(ds.Tables(“Map”).Rows(i).Item(“Regio”).ToString.Tag=用户,则
补给+=1
如果结束
接下来我
补给/=2
RecruteerPanel.Visible=True
MRecruten.Text=补充
RTroepen.max=MRecruten.Text
而MRecruten.Text>0
“这是我的sub应该暂停的地方,让我可以再次与我的表单交互
我使用while循环是因为我习惯了用计算器编程,而这正是实现这一点的方法
结束时
对于i=0到MaxRows-1
MapRegion=ds.Tables(“Map”).Rows(i).Item(“Regio”).ToString
“naam regio bepalen
ds.Tables(“Map”).Rows(i.Item(“Eigenaar”)=Me.Controls(MapRegion).Tag
“塔格·奥普斯兰
ds.Tables(“Map”).Rows(i.Item(“Troepen”)=Me.Controls(MapRegion).Text
“特罗本·奥普斯兰
接下来我
对于i=0到3
MsgBox(ds.表格(“玩家”).行(i).项目(“回合”)&ds.表格(“玩家”).行(i).项目(“玩家”))
如果ds.Tables(“Players”).Rows(i.Item(“Turn”)=真且i<3,则
ds.表(“玩家”).行(i).项(“回合”)=假
ds.表格(“玩家”).行(i+1).Item(“回合”)=True
退出
ElseIf ds.Tables(“Players”).Rows(i).Item(“Turn”)=True,然后i=3
ds.表(“玩家”).行(i).项(“回合”)=假
ds.表(“玩家”).行(0).项(“回合”)=真
如果结束
接下来我
sql=“从地图中选择*”
da=新的OleDb.OleDbDataAdapter(sql,con)
作为新OleDb.OleDbCommandBuilder(da)的尺寸cb
da.更新(ds,“地图”)
sql=“从玩家中选择*”
da=新的OleDb.OleDbDataAdapter(sql,con)
尺寸cb2作为新的OleDb.OleDbCommandBuilder(da)
da.更新(ds,“玩家”)
端接头

再次抱歉,如果我不能以这种方式提问,您需要研究线程。请解释线程(如果可能的话)您的主程序在一个线程上运行。如果您的程序在代码中循环,它将无法与用户交互(反之亦然)。如果您在一个单独的线程中启动您的进程,您的用户仍然可以与表单线程交互。Genious!所以这应该是正确的:[link])尝试查找引用您的.NET framework版本的内容,例如:但是,是的,2005年的内容应该仍然是相关的,只是它可能没有新方法那么容易使用或高效。