VB.net中的多个按钮键盘

时间:2014-04-28 15:18:57

标签: vb.net listbox

我一直在和这个人争斗三天,问了很多人这个问题,但也许我说错了。我正在工作的项目是创建一个数字安全锁。我需要实现以下目标:

我在组框中创建了一个带有六个按钮的键盘。单击按钮时,单击的数字必须显示在列表框中。当您按下其余部分(最多六位数)时,所有必须显示在列表框中,按顺序彼此相邻,就像按下计算器上的按钮一样,然后列表框必须以相同的方式显示它们。以下是我最新的想法:

Public Class Form1

    Private Sub btn1_Click(sender As Object, e As EventArgs) Handles btn1.Click

        If pinlst.Items.Count = 0 Then
            pinlst.Items.Add(btn1.Text)
        Else
            pinlst.Items(0).SubItems.Add(btn1.Text)
        End If

    End Sub

    Private Sub btn2_Click(sender As Object, e As EventArgs) Handles btn2.Click

        If pinlst.Items.Count = 1 Then
            pinlst.Items.Add(btn2.Text)
        Else
            pinlst.Items(1).SubItems.Add(btn2.Text)
        End If

    End Sub

    Private Sub btn3_Click(sender As Object, e As EventArgs) Handles btn3.Click

        If pinlst.Items.Count = 2 Then
            pinlst.Items.Add(btn3.Text)
        Else
            pinlst.Items(2).SubItems.Add(btn3.Text)
        End If
    End Sub

    Private Sub btn4_Click(sender As Object, e As EventArgs) Handles btn4.Click
       pinlst.Text = btn4.Text
    End Sub

    Private Sub btn5_Click(sender As Object, e As EventArgs) Handles btn5.Click
       pinlst.Text = btn5.Text

    End Sub

    Private Sub btn6_Click(sender As Object, e As EventArgs) Handles btn6.Click
        pinlst.Text = btn6.Text
    End Sub

    Private Sub btngp_Enter(sender As Object, e As EventArgs) Handles btngp.Enter
        pinlst.Text = pinlst.Text & btn1.Text
        pinlst.Text = pinlst.Text & btn2.Text
        pinlst.Text = pinlst.Text & btn3.Text
        pinlst.Text = pinlst.Text & btn4.Text
        pinlst.Text = pinlst.Text & btn5.Text
        pinlst.Text = pinlst.Text & btn6.Text
   End Sub
End Class

1 个答案:

答案 0 :(得分:0)

最好在设计时将每个按钮分配给正在按下的角色或正在执行的功能。为了实现这一点,你需要将每个按钮作为一个自定义控件,当然是基于常规按钮,暴露一个属性" CharPressed"或类似的东西。然后,您可以为所有按钮设置一个静态处理程序,您将在Sub New之后在InitializeComponent中动态连接。如果这没有意义,请随意在评论中提问。