【发布时间】:2015-03-30 17:00:28
【问题描述】:
我正在使用 Windows 窗体编写井字游戏。我有一个用于比赛场地的“桌子”和用于图标的按钮。我使用了一个模块,我想处理每个按钮的点击,而不是为每个按钮编写代码。
代码:
Private Sub Btn_Box6_Click(sender As Object, e As EventArgs) Handles Btn_Box6.Click
ChangeTxt()
End Sub
(按钮点击条件之一的示例)
Sub ChangeTxt()
If Form1.Active_PlayerTxt.Text = "X" Then
PlayerOne = True
ElseIf Form1.Active_PlayerTxt.Text = "O" Then
PlayerTwo = True
Else
MsgBox("Please enter X or O to decide the player!")
End If
If PlayerOne = True Then
Form1.Btn_Box1.Text = "X"
ElseIf PlayerTwo = True Then
Form1.Btn_Box1.Text = "O"
Else
MsgBox("Please enter X or O to decide the player!")
End If
Form1.Active_PlayerTxt.Text = ""
PlayerOne = False
PlayerTwo = False
End Sub
所以基本上如您所见,这目前仅更改 btn_box1,但我希望它在单击每个单独的按钮 (btn_box2) 时更改它们,而不是仅更改 btn_box1。有没有简单的方法可以做到这一点?
【问题讨论】:
-
尝试让 ChangeText 将 Button 作为其参数,而不是没有参数,并且在该方法中,您可以检查需要更新的 Button。每个事件处理程序的 Sender 对象将是那个 Button,因此您可以将它传递给 ChangeText。更简洁的是只有一个事件处理程序来处理所有按钮单击事件,它调用 ChangeText。
标签: vb.net