2016-09-09 2 views
1

주문을 추가하는 데 사용되는 간단한 응용 프로그램이 있습니다.텍스트 상자에 통화 값으로 작업하는 vb.net

두 개의 텍스트 상자 컨트롤 'neworder_costprice'와 'neworder_saleprice'가 있습니다. 슬라이더 컨트롤 markup_percent '도 있습니다. 0에서 100 사이의 값을 10 씩 증가시킬 수 있습니다.

사용자가 "1.20"을 costprice에 입력하면 텍스트 상자에서 saleprice 텍스트 상자는 자동으로 costprice + markup_percent 값으로 채워집니다.

나는 이것을 작동시키는 몇 가지 다른 방법을 시도했지만 아무 것도 나를 위해하고 싶지 않습니다! 아무도 내 방식의 오류를 지적 할 수 있습니까?

대신 TextBox의 숫자 입력을위한 costprice.valuechanged에 호출되는 'workoutsaleprice()'기능에서 내 현재 코드 ....

tech_neworder_costprice.Text = String.Format("{0:n2}", neworder_costprice.Text)   

Dim costprice As Double = neworder_costprice.Text 
Dim markup As Integer = percent_slider.Value 

Dim saleprice As Double = ((costprice/100) * markup) + costprice 
neworder_saleprice.Text = saleprice.ToString 
+1

입력을 숫자로 제한하려면 'NumericUpDown'을 사용해야합니다. 그렇지 않으면'1..20'과 같은 실수를 어떻게 처리합니까? – djv

+0

제출시 유효성 검사를 할 것입니다 ... 데이터가 올바르지 않으면 제출하지 말고 사용자가 직접 정렬 오류를 표시하십시오 :) – John

+1

OK, 그렇게 할 수는 있지만 복잡성은 증가합니다. 이것은'NumericUpDown'이있는 이유입니다 :). – djv

답변

1

사용 NumericUpDown입니다 다음. 유효성 검사는 자동으로 처리되므로 숫자가 아닌 값을 가질 수 없습니다.

대신 숫자 연산을 수행하려면 NumericUpDown.Value 속성을 Decimal 형식으로 사용하십시오.

+0

대단히 appriciated Verdolino :) – John