2015-02-05 3 views
0

그래서 텍스트 필드에 입력되는 문자/숫자의 수를 계산하지 않으려 고합니다. 하지만 필드 자체에 입력 된 값이 몇 번 있었는지, 계산 버튼 "클릭 수는 여전히 버튼 하나만 클릭하면 필드에 아무 것도 표시되지 않고 카운터에 +1됩니다. 그래서 필드에 텍스트를 입력해야만 카운터에 추가 할 수있는 방법이 있는지 궁금합니다.Visual Basic에서 카운터를 만드는 방법

Private Sub CalculateButton_Click(sender As System.Object, e As System.EventArgs) Handles CalculateButton.Click 
    Answer = Minutes * TIME_RATE 
    TotalChargeBox.Text = Answer.ToString("N") 
    NumGroupsBox.Text= Counter.ToString("N") 
    AvgAns = Answer/Counter 
    AvggroupBox.Text = AvgAns.ToSting("N") 

모든 작동하지만 난 카운터 기능이 작동하도록하는 방법을 배울 때까지 순간에 NumGroupsBox 것이다 표시 만 0 을 계산을 클릭하면 다음과 같습니다

는 내가 지금까지 가지고있는 것입니다.

이 문제를 어떻게 해결할 수 있는지 알려주세요.

+1

, 당신은 여전히 ​​충분한 정보를 제공하지 않습니다 우리를 도와주세요. 질문을 다시 말하십시오. 현재 : 우리는 당신이 달성하고자하는 것을 알지 못합니다. – Ahmad

+1

소스 샘플에서 추측 할 때, 이것은'VB6' 코드가 아니라'VB.Net' 코드입니다. 그에 따라 태그하십시오. – MicSim

+0

폼 클래스에 필드를 추가하는 것은 어떻습니까? – user1937198

답변

-1

내가 잘못 본 것이 아니라면 응용 프로그램이 실행되는 동안 카운터를 계속 실행하고 싶습니다. 맞습니까? 가장 간단한 방법 중 하나는 양식에 텍스트 상자를 만드는 것입니다 (Visible 속성을 '거짓'으로 설정하여 필요한 경우 숨길 수 있음). txtCounter이라고합시다.

양식 (FormShown 이벤트) 초기화시 'txtcounter.Text = 0'으로 카운터를 초기화합니다 (가장 0 일 가능성이 높음). 그러면 이미 수행 한 것처럼 유지할 수있는 Click 이벤트가 발생합니다.

Private Sub CalculateButton_Click(sender As System.Object, e As System.EventArgs) Handles CalculateButton.Click 

    ' Increment counter 
    Counter = CInt(Counter.text) + 1 

    Answer = Minutes * TIME_RATE 
    TotalChargeBox.Text = Answer.ToString("N") 
    NumGroupsBox.Text= Counter 
    AvgAns = Answer/Counter 
    AvggroupBox.Text = AvgAns.ToSting("N") 

    ' Re-assign to textbox 
    Counter.text = Counter.ToString 

이 작업은 사용자를 위해 수행해야합니다.

0

WebForms 응용 프로그램에서는 TextBox 컨트롤의 TextChanged 이벤트 처리기를 사용하여 값이 수정 된 시간을 감지 할 수 있습니다. 필드가 변경 될 때마다 웹 브라우저는 PostBack을 웹 서버에 보내고 "변경된 수"를 계산할 수 있습니다.

ASPX 페이지 :

Enter value: 
<asp:TextBox ID="TrackedField" runat="server" AutoPostBack="true" /> 
<hr /> 
This field has been changed 
<asp:Label ID="TimesChanged" runat="server" Text="Enter value" /> 
times. 

ASPX.VB 페이지 : 여기에 매우 기본적인 예를 들어 당신이 문제를 설명하기 위해 최선을 노력하지만

Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load 
    If ViewState("TimesChanged") Is Nothing Then ViewState("TimesChanged") = 0 
End Sub 

Protected Sub Page_PreRender(sender As Object, e As EventArgs) Handles Me.PreRender 
    TimesChanged.Text = DirectCast(ViewState("TimesChanged"), Integer).ToString() 
End Sub 

Protected Sub TrackedField_TextChanged(sender As Object, e As EventArgs) Handles TrackedField.TextChanged 
    ViewState("TimesChanged") = DirectCast(ViewState("TimesChanged"), Integer) + 1 
End Sub 
관련 문제