2015-01-20 5 views
0

Итак, я все еще изучаю Visual Basic, поэтому я не совсем уверен, что я должен искать, но мне только что была задана задача создания имиджа банкоматов, ничего что я могу представить для курсовой работы это просто для удовольствия. Однако я пытаюсь выяснить, как блокировать любые кнопки, пока кнопка не будет нажата. Например, у меня есть кнопка, которая имитирует ввод вашей кредитной карты, а затем индикатор выполнения. Тем не менее, я хочу, чтобы кнопки 1-9 блокировались, пока индикатор выполнения не закончил. Мой текущий код:Отключить кнопки до тех пор, пока не будет нажата конкретная кнопка

Public Class Form1 

Private Sub btn1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn1.Click 
    txtNumber.Text = txtNumber.Text & "1" 
End Sub 

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick 
    barProgress.Increment(5) 
    If barProgress.Value = 100 Then 
     MsgBox("Please insert your pin into our secure system.") 
    End If 
End Sub 

Private Sub btnInsertCard_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInsertCard.Click 
    Timer1.Start() 

    If btnInsertCard.Text = "Insert Your Card" Then 
     btnInsertCard.Text = "Please wait.." 

    End If 

End Sub 

Private Sub btn2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn2.Click 
    txtNumber.Text = txtNumber.Text & "2" 
End Sub 

Private Sub btn3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn3.Click 
    txtNumber.Text = txtNumber.Text & "3" 
End Sub 

Private Sub btn4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn4.Click 
    txtNumber.Text = txtNumber.Text & "4" 
End Sub 

Private Sub btn5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn5.Click 
    txtNumber.Text = txtNumber.Text & "5" 
End Sub 

Private Sub btn6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn6.Click 
    txtNumber.Text = txtNumber.Text & "6" 
End Sub 

Private Sub btn7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn7.Click 
    txtNumber.Text = txtNumber.Text & "7" 
End Sub 

Private Sub btn8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn8.Click 
    txtNumber.Text = txtNumber.Text & "8" 
End Sub 

Private Sub btn9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn9.Click 
    txtNumber.Text = txtNumber.Text & "9" 
End Sub 

Private Sub btn0_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn0.Click 
    txtNumber.Text = txtNumber.Text & "0" 
End Sub 

Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClear.Click 
    txtNumber.Clear() 
End Sub 

End Class

Любая помощь будет оценен по достоинству!

+0

использовать свойство '.Enabled' кнопок. 'btnX.Enabled = (barProgress.Value = 100)' может работать вместо блока If – Plutonix

+0

Это работает в Visual Basic? –

+0

Если это не так, то дайте мне знать :) просто мысль, если я смогу заставить ее работать, тогда счастливые дни, но если нет, то это не проблема! – lxtrxi

ответ

1

Я думаю, что вы хотите использовать это свойство .Enabled.

В Form1_Load Я устанавливаю свойство .Enabled для всех кнопок False.

Как только barProgress.Value = 100 Я останавливаю таймер и включаю первую кнопку.

Затем в событии click для каждой кнопки я установил свойство .Enabled для следующей кнопки: True.

Public Class Form1 

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    Dim buttonArray = {btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8, btn9, btn0} 

    For Each button In buttonArray 
     button.Enabled = False 
    Next 
End Sub 

Private Sub btn1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn1.Click 
    txtNumber.Text = txtNumber.Text & "1" 
    btn2.Enabled = True 
End Sub 

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick 
    barProgress.Increment(5) 
    If barProgress.Value = 100 Then 
     Timer1.Stop() 
     btn1.Enabled = True 
     MsgBox("Please insert your pin into our secure system.") 
    End If 
End Sub 

Private Sub btnInsertCard_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInsertCard.Click 
    Timer1.Start() 

    If btnInsertCard.Text = "Insert Your Card" Then 
     btnInsertCard.Text = "Please wait.." 

    End If 

End Sub 

Private Sub btn2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn2.Click 
    txtNumber.Text = txtNumber.Text & "2" 
    btn3.Enabled = True 
End Sub 

Private Sub btn3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn3.Click 
    txtNumber.Text = txtNumber.Text & "3" 
    btn4.Enabled = True 
End Sub 

Private Sub btn4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn4.Click 
    txtNumber.Text = txtNumber.Text & "4" 
    btn5.Enabled = True 
End Sub 

Private Sub btn5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn5.Click 
    txtNumber.Text = txtNumber.Text & "5" 
    btn6.Enabled = True 
End Sub 

Private Sub btn6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn6.Click 
    txtNumber.Text = txtNumber.Text & "6" 
    btn7.Enabled = True 
End Sub 

Private Sub btn7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn7.Click 
    txtNumber.Text = txtNumber.Text & "7" 
    btn8.Enabled = True 
End Sub 

Private Sub btn8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn8.Click 
    txtNumber.Text = txtNumber.Text & "8" 
    btn9.Enabled = True 
End Sub 

Private Sub btn9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn9.Click 
    txtNumber.Text = txtNumber.Text & "9" 
    btn0.Enabled = True 
End Sub 

Private Sub btn0_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn0.Click 
    txtNumber.Text = txtNumber.Text & "0" 
End Sub 

Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClear.Click 
    'txtNumber.Clear() 
    txtNumber.Text = Nothing 
End Sub 

End Class 

* Редактировать - Извините, я как-то прочитал ваш вопрос. Исправил мой ответ.

Смежные вопросы