Добавить min(max) ограничения для ввода чисел в калькулятор - C#

Узнай цену своей работы

Формулировка задачи:

Всем привет. Написал программу "калькулятор" с помощью форм, но что-то не получается добавить ограничение на ввод больших ( маленьких ) чисел. Например, больше 10000000, чтобы не возможно было ввести.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        private string operation = "none";
        private double a;
        private bool clear = false;
        public Form1()
        {
            InitializeComponent();
        }
        private int b = 0;
 
        //label
        private void label1_Click(object sender, EventArgs e)
        {
 
        }
 
        //Ввод цифр от 0 до 9
        private void Zero_Click(object sender, EventArgs e)
        {
            if (this.clear == true)
                textBox.Clear();
            textBox.Text += (sender as Button).Text;
            this.clear = false;
        }
 
        //Очистить
        private void button4_Click(object sender, EventArgs e)
        {
            textBox.Text = "";
            textBox.Focus();
        }

        // Ввод запятой один раз
        private void Zapetaya_Click(object sender, EventArgs e)
        {
            string z = textBox.Text;
            int i = z.IndexOf(",", 0, z.Length); // поиск подстроки "," в строке Z  
            int j = z.IndexOf("-", 0, z.Length); // поиск подстроки "-" в строке Z  

            if (!(i != (-1) || z.Length == 0 || (j == 0 && z.Length == 1)))
            {
                textBox.Text += ",";
            }
        }
 
        // Выход
        private void Exit_Click(object sender, EventArgs e)
        {
            Close();
        }
 
        //Сложение
        private void button1_Click(object sender, EventArgs e)
        {
            {
                if (textBox.Text != "")
                {
                    a = double.Parse(textBox.Text);
                    b = 1; //флаг того, что выполняется операция сложения
                    textBox.Text = "";

                }
                else MessageBox.Show("Введите первое число!", "Сообщение");
                textBox.Focus();
            }
 
        }
 
        //Вычитание
        private void button2_Click(object sender, EventArgs e)
        {
            a = double.Parse(textBox.Text);
            b = 2; //флаг того, что выполняется операция вычитание
            textBox.Text = "";
            label1.Text = "Ввод данных:";
        }
 
        //Умножение
        private void button5_Click(object sender, EventArgs e)
        {
            a = double.Parse(textBox.Text);
            b = 3; //флаг того, что выполняется операция умножение
            textBox.Text = "";
            label1.Text = "Ввод данных:";
        }
 
        //Деление
        private void button6_Click(object sender, EventArgs e)
        {
            a = double.Parse(textBox.Text);
            b = 4; //флаг того, что выполняется операция деление
            textBox.Text = "";
            label1.Text = "Ввод данных:";
        }
 
        //Вычисление синуса
        private void button7_Click(object sender, EventArgs e)
        {
            a = double.Parse(textBox.Text);
            b = 5; //флаг того, что выполняется операция sin
            textBox.Text = "";
        }
 
        //Вычисление косинуса
        private void button8_Click(object sender, EventArgs e)
        {
            a = double.Parse(textBox.Text);
            b = 6; //флаг того, что выполняется операция cos
            textBox.Text = "";
 
        }
        //Извлечение корня (sqrt);
        private void button9_Click(object sender, EventArgs e)
        {
            a = double.Parse(textBox.Text);
            b = 7; //флаг того, что выполняется операция извлечения корня
            textBox.Text = "";
        }
 
        //Возведение в квадрат
        private void button10_Click(object sender, EventArgs e)
        {
            a = double.Parse(textBox.Text);
            b = 8; //флаг того, что выполняется операция возведения в квадрат
            textBox.Text = "";
        }
 
        // 1/x
        private void button11_Click(object sender, EventArgs e)
        {
            a = double.Parse(textBox.Text);
            b = 9; //флаг того, что выполняется операция возведения в квадрат
            textBox.Text = "";
        }
 
        //Factorial
        private void button12_Click(object sender, EventArgs e)
        {
            if (textBox.Text == "")
                MessageBox.Show("Введите операнд!");
            textBox.Select();
 
            try
            {
                this.a = double.Parse(textBox.Text);
                Exception ex = new Exception();
                if (this.a > 100)
                    throw ex;
                double result = 1;
                this.operation = "none";
                for (int i = 1; i <= this.a; i++)
                {
                    result *= i;
                }
                this.a = result;
                textBox.Text = this.a.ToString();
                textBox.Select();
                textBox.SelectAll();
            }
            catch
            {
                MessageBox.Show("Неподходящее значение поля");
                this.a = 0;
                textBox.Clear();
                textBox.Select();
            }
            this.clear = true;
        }
 
        //Равно
        private void button3_Click(object sender, EventArgs e)
        {
            switch (b)
            {
                case 1:
                    {
                        if (a > 100)
                            MessageBox.Show("Неподходящее значение поля");
                        else
 
                            textBox.Text = (a + Convert.ToDouble(textBox.Text)).ToString("G4");
                        label1.Text = "Результат:";
                    }
 
                    break;
 
                case 2:
                    {   
                        textBox.Text = (a - Convert.ToDouble(textBox.Text)).ToString("G4");
                        label1.Text = "Результат:";
                    }
 
                    break;
 
                case 3:
                    {
                        textBox.Text = (a * Convert.ToDouble(textBox.Text)).ToString("G4");
                        label1.Text = "Результат:";
                    }
                    break;
 
                case 4:
                    {
                        textBox.Text = (a / Convert.ToDouble(textBox.Text)).ToString("G4");
                        label1.Text = "Результат:";
                    }
                    break;
 
                //sin
                case 5:
                    {
                        a = ((a * Math.PI) / 180);
                        textBox.Text = (Math.Sin(a)).ToString("G4");
                        label1.Text = "Результат:";
                    }
                    break;
 
                //cos
                case 6:
                    {
                        a = ((a * Math.PI) / 180);
                        textBox.Text = (Math.Cos(a)).ToString("G4");
                        label1.Text = "Результат:";
                    }
                    break;
 
                //sqrt
                case 7:
                    {
                        textBox.Text = (Math.Sqrt(a)).ToString("G4");
                        label1.Text = "Результат:";
                    }
                    break;
 
                //sqr
                case 8:
                    {
                        textBox.Text = (a * a).ToString("G4");
                        label1.Text = "Результат:";
                    }
                    break;
 
                // 1/х
                case 9:
                    {
                        textBox.Text = (1 / a).ToString("G4");
                        label1.Text = "Результат:";
                    }
                    break;
 
            }
        }

        // Запрет ввода с клавиатуры букв
        private void textBox_KeyPress_1(object sender, KeyPressEventArgs e)
        {
            if ((Char.IsDigit(e.KeyChar) || (e.KeyChar == (char)Keys.Back) || (e.KeyChar == ',') || (e.KeyChar == '-')) & (e.KeyChar != '.'))
            {
                string s = textBox.Text;
                if (e.KeyChar == ',')
                {
                    int i = s.IndexOf(",", 0, s.Length);
                    if (i != (-1))
                    {
                        e.KeyChar = (char)Keys.None;
                    }
                }
                if (e.KeyChar == '-')
                {
 
                    int i = s.Length;
                    if (i > 0)
                    {
                        e.KeyChar = (char)Keys.None;
                    }
 
                }
 
            }
            else
                e.KeyChar = (char)Keys.None;

        }
    }
}

Решение задачи: «Добавить min(max) ограничения для ввода чисел в калькулятор»

textual
Листинг программы
private void textBox1_TextChanged(object sender, EventArgs e)
        {
            if (textBox1.Text != "")
            {
                double m = Convert.ToDouble(textBox1.Text);
                if (m > 100000) textBox1.Text = "";
            }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы