2017-12-17 1 views
0

이 코드는 어떻게 수정합니까? 텍스트 상자가 비어 있으면 오류가 발생합니다. textbox.text이 < 3의 경우, 또는 내가 원하는텍스트 상자가 비어 있거나 텍스트 상자가 3보다 작 으면

Private Sub MetroButton1_Click(sender As Object, e As EventArgs) Handles MetroButton1.Click 

    If BunifuMaterialTextbox2.Text < 3 Or BunifuMaterialTextbox2.Text = "" Then 
     MsgBox("must have atleast 3 pesos profit") 
    End If 

End Sub 

는 오류 메시지를 표시하는 것입니다 textbox.text이 비어

+0

코드 파일 맨 위에 'Option Strict On'을 시작한 다음 [ask]를 읽고 [둘러보기] – Plutonix

+0

TextBox의 ** String ** 값을 ** Integer **로 변환하십시오. [Int32.TryParse] (https://msdn.microsoft.com/en-us/library/f02979c7(v=vs.110) .aspx). –

답변

0

사용 발() 인 경우 : - 발 (BunifuMaterialTextbox2.Text) < 3의 경우 또는 val (BunifuMaterialTextbox2.Text) = 0 Then MsgBox ("최소한 3 페소 이익이 있어야합니다") End If 그리고 텍스트 상자는 숫자 만 허용됩니다. 실제로는 문자열과 숫자를 비교하고 있습니다. 위 코드를 사용하면 도움이됩니다.

0

옵션을 엄격히 켜야합니다. 그것 없이는 성공하지 못하는 무언가와 무언가로 무언가를 성공시킬 수있는 몇 가지 모서리 사례가 있으며 일반적으로 재 작성하기는 쉽지 않습니다. 그것이하는 일은 당신이하고있는 것과 동일한 행동이지만 가능한 유형의 실패를 덜 분명하게 만듭니다. 당신이 옵션 엄격한 오프 가지고 있기 때문에

If BunifuMaterialTextbox2.Text < 3 Or BunifuMaterialTextbox2.Text = "" Then 

,이 0을 반환

에 CInt는 아무것도에 성공
If CInt(BunifuMaterialTextbox2.Text) < 3 Or BunifuMaterialTextbox2.Text = "" Then 

로 취급됩니다,하지만 예외를 던지는 ","실패합니다. OrElse 대신 Or를 사용하고 있으므로 두 조건이 항상 평가됩니다. 또한 예외가 먼저 발생하는 조건이 있으므로 텍스트 상자가 비어있을 때 예외가 발생합니다. BunifuMaterialTextbox2.Text = ""OrElse라는 BunifuMaterialTextbox2.Text < 3 다음

그리고 모든 것이 제대로 작동 할 경우

당신은 같은 것을 rewite 수 있습니다. 그러나 나는 정말로 그것을 추천하지 않을 것입니다. 왜냐하면 뒤에서 무슨 일이 벌어지고 있는지 모른 채 깨지기 쉽기 때문입니다.

당신이로 rewite 경우

Dim bunifuMaterial2 as Integer 

If not Integer.TryParse(BunifuMaterialTextbox2.Text, bunifuMaterial2) OrElse bunifuMaterial2 < 3 Then 

뿐만 아니라 그들은뿐만 아니라 같은 "고양이"과 같은 숫자가 아닌 값을 입력하면 당신이 빈에 예외를 방지 할 수 있습니다, 당신은 예외를 피할 수 있습니다.

관련 문제