2015-06-11 3 views
0

Я пытаюсь создать программу, которая будет имитировать гонку собак. и 3 игрока могут делать ставки на любой из собак, но они могут делать ставки только до 15 долларов США. У меня есть все это, за исключением того, что можно сделать ставку до 15 долларов. код очень длинный, поэтому я попытаюсь объяснить, что у меня есть до сих пор.Ограничить числа, введенные в текстовое поле

Итак, у меня есть радиокнопки, чтобы выбрать, какой игрок хочет разместить свою ставку, как только игрок выбран, включены 4 переключателя, что позволяет игрок делает ставку, на какую собаку они хотят делать ставки. после выбора собаки у меня есть текстовый ящик txtAmount, который затем вводит сумму, которую они хотели бы сделать. затем нажмите кнопку с именем btnBet, который подтверждает свою ставку и позволяет другому игроку делать ставки.

мой вопрос в том, можно ли вводить числа, введенные в текстовое поле, только до 15? (У меня уже есть так, что можно вводить только числа, но я хочу ограничить число, на которое оно может пойти), или было бы лучше просто добавить в ComboBox?

UPDATE

вот код, который я использовал, чтобы ограничить текстовое поле только цифры:

private void txtAmount_KeyPress(object sender, KeyPressEventArgs e) 
    { 
     if (e.KeyChar != '\b') 
     { 
      e.Handled = !char.IsNumber(e.KeyChar); 
     } 
    } 

мой вопрос не является дубликат другого вопроса, упомянутым в комментарии. Вот почему: я не спрашиваю, как ограничить только цифры, я спрашиваю, как ограничить определенные номера (1-15 включительно)

+2

рассмотрим 'NumericUpDown' – Plutonix

+0

@Plutonix Это один из вариантов ответа на возможный дублирующий вопрос, который я только что связал. ;-) – Dijkgraaf

+0

@Dijkgraaf, мой вопрос схож, но я уже ограничился только цифрами, я спрашивал, можно ли было ограничить, какие числа можно ввести например: я хочу, чтобы игрок ставки мог ставьте любую сумму от 1 до 15 (включительно). но не в состоянии ввести любое число, превышающее 15 –

ответ

-2

Ну, я не знаю, как вы разрешаете вводить только числа но когда я это сделал, я сделал это, создав новое текстовое поле «num-only», которое унаследовало все от обычного текстового поля и затем переопределяло функцию keyPressed (https://stackoverflow.com/a/463335). Если вход не был числом, вход не принимался. Вы можете просто добавить еще один оператор if, проверяющий, превышает ли введенную сумму более пятнадцати с добавленным новым номером, и если бы он не добавлял новый номер в текстовое поле.

+0

Событие 'KeyPress' полезно для проверки отдельных ключей по мере их поступления. Но [' Validating'] (https://msdn.microsoft.com/en-us /library/system.windows.forms.control.validating.aspx) лучше для проверки всего введенного содержимого. –

+0

Не можете ли вы просто добавить if (int.tryParse (txtAmount.text + e.KeyChar)> 15) {e.handled = true;} –

+0

@ seb-o-matic Я немного смущен. Где бы я положил этот кусок кода? –

Смежные вопросы