2014-02-17 10 views
0

두 개의 텍스트 상자가 있습니다. 하나는 값을 입력 할 수 있고 "£"문자는 텍스트 상자 안에 있고 두 번째 텍스트 상자에는 두 번째 텍스트 상자에 "£ "첫 번째 값에 추가해야하는 mysql 테이블의 문자.두 개의 텍스트 상자에 문자열 값을 추가하는 방법

첫 번째 텍스트 상자에 값을 입력 할 때 두 번째 텍스트 상자에 값이 추가되지 않으면 둘 다 동일하게 유지됩니다. 내 코드에 어떤 문제가 있는지 볼 수 없습니다 :이 같은

Private Sub txtsurcharges_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtsurcharges.TextChanged 
    Dim c As Integer 
    c = Val(txtsurcharges.Text) + Val(txttotal.Text) 
    txttotal.Text = c 
End Sub 
+0

QBx-VB6에서 사용했던 것처럼'Val'을 사용하지 마십시오. 통화를 표시하는 경우 Integer에 저장하면 소수 부분이 해제되고 Decimal 또는 Double 변수가 사용됩니다. 이것들이 사용자 입력 인 것처럼 보이므로'Decimal.TryParse'를 사용하여 값을 가져옵니다. – Plutonix

답변

1

시도 뭔가 :이 도움이

Private Sub txtsurcharges_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtsurcharges.TextChanged 
    Dim c As Double 'It is bad to use integers for currency, as integers cut off decimals.' 
    Dim surcharges As Double 
    Dim total As Double 'We also need to remove the £ char.' 
    If Double.TryParse(txtsurcharges.Text.Replace("£", ""), surcharges) = False Then 
     'It looks like it isnt possible to parse the string, probably because there is some special character or letter.' 
     'Some type of error handling will go here. (MsgBox or something else)' 
    End If 
    If Double.TryParse(txttotal.Text.Replace("£", ""), total) = False Then 
     'It looks like it isnt possible to parse the string, probably because there is some special character or letter.' 
     'Some type of error handling will go here. (MsgBox or something else)' 
    End If 
    c = surcharges + total 
    txttotal.Text = "£" & CStr(c) 
End Sub 

희망을.

+0

효과가 있으니, 고맙습니다. – Livaren

+0

문제 없습니다. :-) 또한, "£"& somevar'를 사용하는 것이 더 깔끔하고 String.Format ("£ {0}", somevar)' –

1

또한 txtsurcharges에 대해 AutoPostBack = true를 지정해야합니다. 그렇지 않으면 코드가 실행되지 않습니다.

Adding the values of 2 textboxes to display result in one of them

MDTech.us_MAN 또한 내가 그랬던 것처럼 통화를 추가 정수를 사용하는 동일한 지점을 만드는 .... 이전 질문에 내 대답을 참조하십시오. 그러나 당신은 처리 할 전체 £ 만 가질 수 있습니다 - 당신은 지정하지 않았습니다.

마지막으로 입력을 txtsurcharges로 제한하는 필터를 수치로만 추가합니다.

+0

위 코드를 사용했는데 효과가 있었지만 관계 없음 – Livaren

+0

괜찮습니다 ...이 경우 10 진수 값이 있어야하며 위의 코드는 괜찮을 것입니다. – Mych

+0

@Mych : 제가'double's을 사용하도록 제안한 이유는이 프로그램이 장기적으로 어떻게 사용될 수 있는지 당신이 정말로 알지 못하기 때문입니다. 이것이 비즈니스 수준의 목적을위한 것이라면, 누군가는 값이 반올림 (위 또는 아래로)하고 누구에게 갈 것인지 알 수 있습니다. 개발자 (또는 제품 지원 팀). 그래서, 그것은 단지 몇 가지 여분의 문자를 작성하고 그것을 다시 오지 않는 것이 좋습니다. 그것은 내 의견이다. –

관련 문제