简单的VB,处理许多按钮



在我的VB解决方案中,我在网格中排列了很多按钮。加载程序后,将其中一个按钮设置为正确的按钮(您必须单击该按钮才能获胜)。有人可以将我的方向指向正确的方向吗?因为必须有一种更好的方法,而不是手动编码每个按钮,并为每个按钮创建事件处理程序。

您不必给我一个工作的例子,只是关于如何完成的总体想法。

谢谢。

如果要在网格中排列按钮,请使用TableLayoutPanel或将按钮直接添加到表单中并计算其位置。如果要在尺寸大小时自动排列按钮,则TableLayoutPanel很有用,否则直接添加按钮对我来说似乎更容易。

将按钮添加到形式级别定义的阵列中,以使它们易于访问

Public Const NColumns As Integer = 5, NRows As Integer = 4
Private buttons As Button(,) = New Button(NColumns - 1, NRows - 1) {}

您可以轻松地在循环中添加按钮

For ix As Integer = 0 To NColumns - 1
    For iy As Integer = 0 To NRows - 1
        Dim btn = New Button()
        btn.Text = String.Format("{0:d2}{1:d2}", ix, iy)
        btn.Location = New Point(leftMargin + ix * xDistance,
                                 topMargin + iy * yDistance)
        btn.Size = New Size(buttonWidth, buttonHeight)
        AddHandler btn.Click, Addressof Button_Clicked
        buttons(ix, iy) = btn
        Controls.Add(btn)   
    Next
Next

您可以使用随机生成器来确定获胜按钮。将其定义为表单成员,而不是本地变量。

Private randomGenrator As System.Random = New System.Random()

确定坐标

Dim xWins = randomGenrator.Next(NColumns) 'Returns a number between 0 and NColumns-1
Dim yWins = randomGenrator.Next(NRows)

点击处理程序看起来像这样

Private Sub Button Button_Clicked(sender As Object, e As EventArgs)
    If sender = buttons(xWins, yWins) Then
       'You win
    Else
       'You loose
    End
End Sub

首先,您说想要一个按钮网格,因此您必须在表单中具有FlowLayoutPanel控件,以便让您要添加的按钮自动安排。其次,您必须使用for循环,r任何形式的外观,才能添加要添加到先前添加的" flowlayoutpanel"的按钮。 课堂答案 Dim Stranswertext作为字符串 昏暗的响应flag作为布尔人 结束班

Sub LoadForm(byval a_Answers as Answer())        
    Dim i as Integer = 0
    Dim b as Button 
    For(i=0;i<NUM_OF_BUTTONS;i++)
       b = New Button()
       b.Text = "Choice -" & i & "- " & a_Answers(i).strAnswerText 
       b.Tag = a_Answers(i).AnswerFlag
       'Supposing that the FlowLayoutPanel control name is fl
       AddHandler b.Click, Addressof Clicked
       fl.controls.Add(b)   
    End For 
End Sub
Sub Button Clicked(sender as object, e as EventArgs)
    if sender.Tag = True
       'True answer
    else
       'Wrong answer
    end if
End Sub

相关内容

  • 没有找到相关文章

最新更新