2015-02-05 3 views
0

Итак, я хочу рассчитать, сколько букв/цифр не вводится в текстовое поле Но сколько раз что-то было введено в самом поле, я думал просто сделать свой " Calculate "подсчитайте количество кликов, но это все равно позволит кому-то просто нажать кнопку, и это будет +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 значение «False»), назовем его txtCounter.

При инициализации вашей формы (событие FormShown) вы инициализируете счетчик (до нуля, скорее всего,) как `txtcounter.Text = 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, чтобы определить, когда значение было изменено. Каждый раз, когда поле изменяется, веб-браузер делает 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 
Смежные вопросы