noob вопрос здесь. Я пытаюсь написать программу, чтобы, когда кто-то оставил клики на ярлыке, значение в текстовом поле увеличивается на 1. Когда они нажимают на него правой кнопкой, значение уменьшается на 1. Все это работает, за исключением того, Не хочу, чтобы ценность когда-либо могла стать отрицательным числом. Я пытался остановить его, и он работает, когда положительное значение уже находится в текстовом поле. НО, если вы щелкните правой кнопкой мыши на ярлыке перед тем, как вы нажмете его (до того, как какое-либо значение будет в текстовом поле), оно все равно станет «-1», а затем остановится. Вот код, я использую:Как запретить текстовое поле иметь отрицательное значение? (Visual Basic)
Private Sub Label5_MouseClick(sender As Object, e As MouseEventArgs) Handles Label5.MouseClick
If e.Button = MouseButtons.Left Then
SawWhetOwl.Text = (Val(SawWhetOwl.Text) + 1).ToString()
Label5.Text = SawWhetOwl.Text
ElseIf e.Button = MouseButtons.Right Then
If SawWhetOwl.Text = CInt(SawWhetOwl.Text < 0) Then
Exit Sub
Else
SawWhetOwl.Text = (Val(SawWhetOwl.Text) - 1).ToString()
Label5.Text = SawWhetOwl.Text
End If
End If
End Sub
Проблема, как мне кажется, является то, что значение в текстовом поле трогании, как пустой, без присвоенного значения к нему. Поэтому, когда я нажимаю правой кнопкой мыши по нему до того, как ему присваивается значение, он не может вычислить, меньше или меньше 0, и это просто дает мне -1, я думаю. Я довольно смущен, извините, если этот вопрос запутан. Мне что-то не хватает?
Вы можете использовать NumericUpDown, если значение или диапазон важно – Plutonix
Как бы я применяю, что в коде, который я отправил? Я - абсолютный новичок в программировании, поэтому я действительно не знаю, что это такое. – onemillionwords17
Они находятся в панели управления - вместо текстового поля (для текста) используйте 'NumericUpDown' для сбора номера. Он имеет свойства Min, Max и Decimal, чтобы позволить вам то, что вы хотите – Plutonix