C# - диапазон для ввода текстового поля - PullRequest
0 голосов
/ 08 февраля 2020

У меня есть форма с 4 текстовыми полями. Я пытаюсь закодировать метод, который проверяет, чтобы входные данные в 1-м и 3-м текстовых полях были между 0 и 100. Это пример, который я нашел. Но я запутался в том, как можно проверить оба текстовых поля, если для текстового поля есть только 1 параметр. Я знаю, что вам нужно конвертировать входные данные, потому что текстовые поля принимают только строки. У меня проблемы с преобразованием двух текстовых полей, как вы проверяете их оба в этом операторе if. Вы конвертируете оба текстовых поля, присваиваете им разные имена переменных, а затем используете эти переменные в двух разных операторах if? Было бы правильно просто повторить это утверждение для другого текстового поля?

public bool IsWithinRange(TextBox textBox, string name, decimal min, decimal max)
        {
            number = txtOperand1.Text, txtOperand2.Text;

            if (number < 0 || number > 100)
            {
                MessageBox.Show(name + " must be between " + min + " and " + max + ".", "Entry Error");
                textBox.Focus();
                return false;
            }
            return true;
        }

Ответы [ 2 ]

2 голосов
/ 08 февраля 2020

Чтобы проверить значения TextBox, вам просто нужно проанализировать данные / текст каждого файла как int, просто выполнить анализ и достаточно метода проверки.

Как указывал @Jimi, для WinForms :

private void button1_Click_1(object sender, EventArgs e)
{
    int f = 0, t = 0;

    if (Int32.TryParse(textBox1.Text, out f))
    {
        // successfully parsed 
    }

    if (Int32.TryParse(textBox3.Text, out t))
    {
        // successfully parsed 

    }

    // or just use parse..
    int f1 = Int32.Parse(textBox1.Text);
    int t1 = Int32.Parse(textBox3.Text);


    if (rangeCheck(f, t))
    {
       // Success 
    }
}
bool rangeCheck(int first, int third)
{
    return (first >= 0 && first <= 100 && third >= 0 && third <= 100);
}

design your form, just an example: Код вашего дизайнера форм: измените в соответствии с вашими потребностями

            // textBox1
            // 
            this.textBox1.Location = new System.Drawing.Point(230, 75);
            this.textBox1.Name = "textBox1";
            this.textBox1.Size = new System.Drawing.Size(100, 20);
            this.textBox1.TabIndex = 0;
            // 
            // textBox2
            // 
            this.textBox2.Location = new System.Drawing.Point(230, 123);
            this.textBox2.Name = "textBox2";
            this.textBox2.Size = new System.Drawing.Size(100, 20);
            this.textBox2.TabIndex = 1;
            // 
            // textBox3
            // 
            this.textBox3.Location = new System.Drawing.Point(230, 168);
            this.textBox3.Name = "textBox3";
            this.textBox3.Size = new System.Drawing.Size(100, 20);
            this.textBox3.TabIndex = 2;
            // 
            // textBox4
            // 
            this.textBox4.Location = new System.Drawing.Point(230, 211);
            this.textBox4.Name = "textBox4";
            this.textBox4.Size = new System.Drawing.Size(100, 20);
            this.textBox4.TabIndex = 3;
            // 
            // button1
            // 
            this.button1.Location = new System.Drawing.Point(230, 262);
            this.button1.Name = "button1";
            this.button1.Size = new System.Drawing.Size(75, 23);
            this.button1.TabIndex = 4;
            this.button1.Text = "button1";
            this.button1.UseVisualStyleBackColor = true;
            this.button1.Click += new System.EventHandler(this.button1_Click_1);

Используя WPF

 <TextBox Name="box1"  ...other_properties  />
 <TextBox Name="box2"  ...other_properties  />
 <TextBox Name="box3"  ...other_properties  />
 <TextBox Name="box4"  ...other_properties  />

 <Button Click="Button_Click" Content="Check for validity" ...other properties />

Теперь обработайте те:

private void Button_Click(object sender, RoutedEventArgs e)
        {

            int f = 0, t = 0;

            if (Int32.TryParse(box1.Text, out f))
            {
               // successfully parsed 
            }

            if (Int32.TryParse(box3.Text, out t))
            {
                // successfully parsed 

            }

            // or just use parse..
            int f1 = Int32.Parse(box1.Text);
            int t1 = Int32.Parse(box3.Text);


            if (rangeCheck(f, t))
            {
                Debug.WriteLine("Both are within 0 and 100");
            }
        }

        bool rangeCheck(int first, int third)
        {
            return (first >= 0 && first <= 100 && third >= 0 && third <= 100);
        }
0 голосов
/ 12 февраля 2020

Вы можете использовать следующий код, чтобы убедиться, что значения в 1-м и 3-м текстовых полях

от 0 до 100.

private void button1_Click(object sender, EventArgs e)
        {
            int m = 0;
            int n = 0;
            bool a = int.TryParse(textBox1.Text, out  m);
            bool b = int.TryParse(textBox3.Text, out n);
            if(a&b==false)
            {
                MessageBox.Show("please enter number");
            }
            else
            {
                bool t = IsWithinRange(m,"textbox1", 1, 100);
                t= IsWithinRange(n, "textbox3", 1, 100);
            }

        }
        public bool IsWithinRange(int a, string name,decimal min, decimal max)
        {
            if(a>=min&&a<=max)
            {
                MessageBox.Show(name + " is between " + min + " and " + max + ".", "Right");
            }
            else
            {
                MessageBox.Show(name + " must be between " + min + " and " + max + ".", "Entry Error");
            }
            return true;
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...