2014-04-15 3 views
-3

Я хочу создать TextBox в приложении windows form в visual studio, который содержит только определенные числа. например, я хочу, чтобы одно текстовое поле могло содержать только числа между 0 и 1. Если его любое другое значение, я хочу, чтобы сообщение появилось, что говорит неправильный номер. Приложение написано на C#.Текстовое поле с определенными номерами

Я видел этот пример C# Numeric Only TextBox Control , но это числовое значение, и я хочу указать числовое число.

Редактировать: Моя ошибка я не был достаточно ясен. Я попробовал NumericUpDown, но он не работает для всех примеров. Во втором поле я хочу иметь значения от 20 до 340, но только плавающие точки .5 между (20,20,5,21 и т. Д.), И если я использую NumericUpDown, если пользователь вставляет 22.6, ячейка принимает его, и я не хочу что. Вот почему я спрашиваю, можно ли управлять значением, вставленным в текстовое поле или в MaskedTextBox, и если он имеет право тогда, чтобы пользователь мог ввести его в поле. Надеюсь, теперь я достаточно ясен.

+0

Использовать NumericUpDown. –

+1

Этот вопрос кажется не по теме, потому что ему не хватает усилий от OP. –

+0

@PatrickHofman> Ну, число от 0 до 1, скорее всего, будет плавающим числом, поэтому довольно сложно получить полный раскрывающийся список ... –

ответ

2

Вы должны использовать NumericUpDown.

Вы можете использовать его следующим образом:

NumericUpDown control = new NumericUpDown(); 
control.Minimum = 0; 
control.Maximum = 1; 
control.DecimalPlaces = 2; // or something you want. 
control.Increment = .01; // step is .01 
+0

Надеюсь, цифры не будут до десяти знаков после запятой, иначе добраться до 0.8956485212 займет много кликов :-) –

+0

@Bartdude: вы всегда можете ввести его, если хотите. Давайте создадим для него жестов для движения;) –

+0

oh ok. Мой плохой, у меня очень ограниченное знание управления winforms с точки зрения разработчика, и я понимаю, какой тип управления это на самом деле. Я сейчас понимаю ваше мнение! –

0

создать пользовательский элемент управления наследует TextBox и добавить событие для KeyPress следующим

public class MyTextBox:TextBox 
{ 
    List<int> numberstobeallowed = Enumerable.Range(20, 340 - 20).ToList(); 
    public MyTextBox() 
    { 
     this.Leave += new EventHandler(MyTextBox_Leave); 
    } 

    void MyTextBox_Leave(object sender, EventArgs e) 
    { 
     if (numberstobeallowed.Contains(Convert.ToInt32(this.Text))) 
      this.Text = string.Empty; 
    } 
} 

надеюсь, что это помогает

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