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