Vb.net 为下一个循环换行
我有两个嵌套循环,如下所示 对应的变量x和y是x轴、y轴。当x从1运行到10,然后返回一条类似的线 例如:Vb.net 为下一个循环换行,vb.net,loops,for-loop,Vb.net,Loops,For Loop,我有两个嵌套循环,如下所示 对应的变量x和y是x轴、y轴。当x从1运行到10,然后返回一条类似的线 例如: x=(1->10)然后y=1 x=(11->20)然后y=2 x=(xn->XNN)然后y=n 是这样的 Private Sub R1(ByRef RoomTotal As Integer, ByRef RoomInLine As Integer, ByRef RoomW As Integer, RoomH As Integer, ByRef RoomPrefix As String, B
x=(1->10)然后y=1
x=(11->20)然后y=2
x=(xn->XNN)然后y=n
是这样的
Private Sub R1(ByRef RoomTotal As Integer, ByRef RoomInLine As Integer, ByRef RoomW As Integer, RoomH As Integer, ByRef RoomPrefix As String, ByRef RoomTopLeft As Integer, RoomMargin As Integer)
Dim TotalRoomLine As Integer
If RoomTotal Mod RoomInLine <> 0 Then
TotalRoomLine = RoomTotal \ RoomInLine + 1
Else
TotalRoomLine = RoomTotal / RoomInLine
End If
For y As Integer = 1 To TotalRoomLine Step 1
For x As Integer = 1 To RoomTotal Step 1
Dim RoomNo As New Button
If x <= RoomInLine Then
RoomNo.Top = RoomTopLeft
RoomNo.Left = RoomTopLeft + (RoomW * (x - 1)) + (RoomMargin * (x - 1))
RoomNo.ForeColor = SystemColors.ControlLightLight
ElseIf RoomInLine < x <= (RoomInLine * y) Then
RoomNo.Top = RoomTopLeft + (RoomH * (y - 1)) + (RoomMargin * (y - 1))
RoomNo.Left = RoomTopLeft + (RoomW * (x - 1)) + (RoomMargin * (x - 1))
RoomNo.ForeColor = Color.Green
End If
RoomNo.Width = RoomW
RoomNo.Height = RoomH
RoomNo.Name = RoomPrefix & Convert.ToString(x)
RoomNo.Text = RoomPrefix & Convert.ToString(x)
RoomNo.BackColor = SystemColors.ControlDark
RoomNo.FlatStyle = FlatStyle.Flat
RoomNo.Cursor = Cursors.Hand
Me.Controls.Add(RoomNo)
Next
Next
End Sub
i call function: R1(36, 10, 100, 100, "ROOM", 100, 5)
Private Sub R1(ByRef RoomTotal为整数,ByRef RoomInLine为整数,ByRef RoomW为整数,RoomH为整数,ByRef RoomPrefix为字符串,ByRef RoomTopLeft为整数,RoomMargin为整数)
Dim TotalRoomLine作为整数
如果RoomTotal Mod RoomInLine为0,则
TotalRoomLine=RoomTotal\RoomInLine+1
其他的
TotalRoomLine=RoomTotal/RoomInLine
如果结束
对于y为整数=1的TotalRoomLine步骤1
对于x作为整数=1的步骤1
调暗RoomNo作为新按钮
如果x循环太多。试试这个:
For iRoom As Integer = 0 To RoomTotal - 1
Dim RoomNo As New Button
Dim x As Integer = iRoom Mod RoomInLine
Dim y As Integer = iRoom \ RoomInLine
RoomNo.Top = RoomTop + (RoomH + RoomMargin) * y
RoomNo.Left = RoomLeft + (RoomW + RoomMargin) * x
RoomNo.Width = RoomW
RoomNo.Height = RoomH
RoomNo.Name = RoomPrefix & Convert.ToString(iRoom + 1)
RoomNo.Text = RoomPrefix & Convert.ToString(iRoom + 1)
RoomNo.BackColor = SystemColors.ControlDark
RoomNo.FlatStyle = FlatStyle.Flat
RoomNo.Cursor = Cursors.Hand
Me.Controls.Add(RoomNo)
Next
那么问题出在哪里呢?当前显示:只有第1行x=1到10是正确的。x=11表示总房间不存在。谢谢Szymon。你的意思是第二行的数字是12而不是11?每行只创建了10个按钮。我有x=n,然后y=n/10=(行)