2017-12-06 8 views
0

저는 Visual Basic에서 초보자입니다. 다음 코드를 가진 계산기를 개발 중입니다.VB Radiobutton.checked 상태는 그와 함께 산술 연산을 수행하면 -1을 반환합니다.

labeltotal.text = (radiobutton1.Checked) * 1000

위의 코드에서 내 기대되는 radiobutton1을 선택하면, 전체의 값은, 그렇지 않으면 1000해야이 0

해야하지만 내가 점점 오전하는 경우,하다는 것을 라디오 버튼 1을 선택하면 총 값이 -1000으로 변경되고 그렇지 않으면 0이됩니다.

그러나 체크 박스를 사용하면 정확한 값을 얻습니다. 예를 들어, labeltotal.text = (checkbox1.Checkstate) * 1000 올바른 값은 checkstate에 따라 예상 한 값이됩니다.

위의 코드에서 확인란과 동일한 방식으로 라디오 버튼을 만들 수 있습니까?

+0

VB? VB.Net? VBA? 어느 것? 배워야 할 첫 번째 사실은 그것들이 비슷하지만 동일하지 않다는 것입니다. :-) – ashleedawg

+0

시각적으로 기본입니다. –

+0

좋습니다. [tag : VBA] 태그를 제거해야합니다. 또한 [둘러보기]는 물론 [ask]와 [mcve]도 확인하십시오. 아, 그리고 Stack Overflow에 오신 것을 환영합니다! :-) – ashleedawg

답변

2

우선 Option StrictOn으로 전환해야합니다. BooleanInteger로 변환됩니다

경우 False에 대한 True에 대한 -10를 얻을 수 있습니다. 자세한 내용
볼 : Convert Boolean to Integer in VB.NET

그래서

중 하나를 당신이 원하는 결과를 반환해야 다음

:도있다

labeltotal.Text = (CInt(radiobutton1.Checked) * 1000 * -1).ToString 

labeltotal.Text = (CInt(radioButton1.Checked)^2 * 1000).ToString 

함수 Convert.ToInt321True에 대한 반환됩니다를

labeltotal.Text = (Convert.ToInt32(radioButton1.Checked) * 1000).ToString 

하지만이 특별한 경우에는 계산을 수행하지 않습니다. 정말 말이 되네.
다음은 더 명확하고이 경우에 더 적합 :

labeltotal.Text = If(radioButton1.Checked, "1000", "0")