2014-07-26 2 views
0

세 개의 텍스트 상자와 계산 단추가있는 프로그램을 만들고 있는데, 세 개의 텍스트 상자 모두에 값이있는 경우에만 계산 단추를 사용할 수 있습니다. 이것은 내가 지금 사용하고있는 코드이지만 버튼을 텍스트 상자 및 활성화 단추

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    FirstNumber = CInt(TextBox1.Text) 
    SecondNumber = CInt(TextBox2.Text) 
    ThirdNumber = CInt(TextBox3.Text) 
    Result = (SecondNumber - FirstNumber)/ThirdNumber 
    Label5.Text = Result 
    If TextBox1.Text = "" And TextBox2.Text = "" And TextBox3.Text = "" Then 
     Button1.Enabled = False 
    End If 

가 어떻게이 문제를 해결할 않는 모든 세 개의 텍스트 상자가 비어있는 경우에도 사용 가능 상태로 유지?

+0

"두 번 아래의 코드처럼 사용"1.2과 같은 번호를 갖고 싶어하는 경우도 모르겠어? – Steve

+0

사용자가 숫자를 입력하고 세 개의 텍스트 상자에 숫자가 모두 포함 된 경우에만 단추를 사용할 수있게하려는 경우 – Todd432

+0

3 개의 텍스트 상자의 Validating 이벤트를 확인하십시오 – Steve

답변

0

각 텍스트 상자의 text_changed 이벤트에 대한 코드를 작성해야합니다. 버튼을 누르면 텍스트가 입력 될 때 텍스트 상자에서 어떤 일이 발생하는지 알 수 없습니다.

텍스트 변경 이벤트가 발생하면 세 텍스트 상자의 텍스트 변경 이벤트에서 3 개의 텍스트 상자를 모두 평가해야합니다. 그에 따라 버튼을 비활성화하십시오.

+0

텍스트 상자의 텍스트가 변경된 각 단추의 if 문을 이동했지만 그래도 작동이 안되는 – Todd432

1

3 개의 텍스트 상자 모두에 하나의 이벤트 처리기 만 있습니다. 이벤트 코드에서
당신은 TextBox1_TextChanged에 3 개 텍스트 상자의 TextChange 이벤트를 넣어 텍스트 상자의 값을 확인하고 가능하게하는 부울 여부를 버튼

Private Sub textBoxes_Validating(ByVal sender As Object, _ 
       ByVal e As System.ComponentModel.CancelEventArgs) _ 
       Handles textBox1.Validating, textBox2.Validating, textBox3.Validating 

    Dim areValid As Boolean = True 
    Dim intValue As Integer 

    if Not Int32.TryParse(textBox1.Text, intValue) Then 
     areValid = false 
    else if Not Int32.TryParse(textBox2.Text, intValue) Then 
     areValid = false 
    else if Not Int32.TryParse(textBox3.Text, intValue) Then 
     areValid = false 
    End If 
    Button1.Enable = areValid 
    ' You could force the focus to remain on the invalid textbox enabling this line 
    ' e.Cancel = True 
End Sub 
0

을 설정합니다.
숫자 만 포함되어 있는지 확인합니다. "else에서 버튼을 다시 비활성화하지 않을 경우"
물론 시작시 버튼을 비활성화해야합니다.

그리고 당신은 당신의 사용자 유형의 문자 버튼이 활성화 할 경우

Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged, TextBox3.TextChanged, TextBox2.TextChanged 
    If IsNumeric(TextBox1.Text) = True And IsNumeric(TextBox2.Text) = True And IsNumeric(TextBox3.Text) = True Then 
     Button1.Enabled = True 
    Else 
     Button1.Enabled = False 
    End If 
End Sub 

Dim FirstNumber As Double 
Dim SecondNumber As Double 
Dim ThirdNumber As Double 
Dim Result As Double 

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    FirstNumber = CDbl(TextBox1.Text) 
    SecondNumber = CDbl(TextBox2.Text) 
    ThirdNumber = CDbl(TextBox3.Text) 
    Result = (SecondNumber - FirstNumber)/ThirdNumber 
    Label5.Text = Result 
End Sub 
관련 문제