Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.11.2012, 02:18   #1
Progamer786
 
Регистрация: 18.11.2012
Сообщений: 7
По умолчанию Калькулятор на Visual C#

Делал в Visual C# 2005. Подскажите пожалуйста:
Не пойму, как сделать, чтобы нельзя было в окна для ввода ввести все символы, кроме запятой и цифр(чисел). Это с массивами можно как то реализовать? И чтобы введенная с клавиатуры точка менялась запятой.
При пустых сообщениях сложить/умножить не выводить ошибки. Поставить фокус справа, чтобы курсор уже стоял на первом числе:
Код:
TextBox1.Focus();
Вот код программы:
http://yadi.sk/d/tT0Dd5dz0pJvG
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication1
{
    public partial class FormCalc : Form
    {
        public FormCalc()
        {
            InitializeComponent();
        }
        private void Form1_KeyPress(object sender, KeyPressEventArgs e)
        {
            char c = e.KeyChar;
            char sep = Application.CurrentCulture.NumberFormat.CurrencyDecimalSeparator[0];
            switch (c)
            {
                case '+':
                    btnAdd(btnAdd, null); break;
                case 'x':
                case '*':
                    btnAdd(btnAdd, null); break;
                case '-':
                    btnAdd(btnAdd, null); break;
                case '/':
                    btnAdd(btnAdd, null); break;
            }
            e.Handled = !(char.IsDigit(c) || c == sep || c == '-' || c == '\b');
        }
        private void btnClose_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnAdd_Click(object sender, EventArgs e)
        {
            if (txt1.Text == "")
                txt1.Text = "";
            else
            {
            float i1, i2, i3;
            lblOper.Text = "Сложение";
            i1 = Convert.ToSingle(txt1.Text);
            i2 = Convert.ToSingle(txt2.Text);
            i3 = i1 + i2;
Convert.ToDouble(txt2.Text);

            double txtresult = 0;
            if (double.TryParse(txt1.Text, out txtresult))
                txt1.Text = (txtresult * 10).ToString();
            }
        }

        private void btnReset_Click(object sender, EventArgs e)
        {
            lblOper.Text = "";
            txt1.Text = "";
            txt2.Text = "";
            txtResult.Text = "";

        }

        private void btn1_Click(object sender, EventArgs e)
        {
            if (txt1.Text == "")
                txt1.Text = "";
            else
            {
                float i1, i2, i3;
                lblOper.Text = "Вычитание";
                i1 = Convert.ToSingle(txt1.Text);
                i2 = Convert.ToSingle(txt2.Text);
                i3 = i1 - i2;
Convert.ToDouble(txt2.Text);

                double result = Convert.ToDouble(txt1.Text) + Convert.ToDouble(txt2.Text);
                txtResult.Text = Convert.ToString(i3);
            }
        }

        private void btn2_Click(object sender, EventArgs e)
        {
            if (txt1.Text == "")
                txt1.Text = "";
            else
            {
                float i1, i2, i3;
                lblOper.Text = "Умножение";
                i1 = Convert.ToSingle(txt1.Text);
                i2 = Convert.ToSingle(txt2.Text);
                i3 = i1 * i2;
                double result = Convert.ToDouble(txt1.Text) + Convert.ToDouble(txt2.Text);
                txtResult.Text = Convert.ToString(i3);
            }
        }
        private void btn3_Click(object sender, EventArgs e)
        {
            if (txt1.Text == "")
                txt1.Text = "";
            else
            {
                float i1, i2, i3;
                lblOper.Text = "Деление";
                i1 = Convert.ToSingle(txt1.Text);
                i2 = Convert.ToSingle(txt2.Text);
                if (i2 == 0)
                    //lblOper2.Text = "Ошибка! На ноль делить нельзя!";
                    MessageBox.Show("Ошибка! На ноль делить нельзя!");
                else
                {
                    i3 = i1 / i2;
Convert.ToDouble(txt2.Text);
                    double result = Convert.ToDouble(txt1.Text) + Convert.ToDouble(txt2.Text);
                    txtResult.Text = Convert.ToString(i3);
                }
            }
        }
        private void txtResult_TextChanged(object sender, EventArgs e)
        {
        }
    }
}

Последний раз редактировалось Progamer786; 20.11.2012 в 02:22. Причина: Добавил новые вопросы
Progamer786 вне форума Ответить с цитированием
Старый 20.11.2012, 11:23   #2
masax
Форумчанин
 
Регистрация: 01.10.2008
Сообщений: 248
По умолчанию

тебе обязательно с массивами?
вообще то есть встроенные инструменты для этого
Контакты
skype, почта: bm@kwax.ru
masax вне форума Ответить с цитированием
Старый 20.11.2012, 15:02   #3
Progamer786
 
Регистрация: 18.11.2012
Сообщений: 7
По умолчанию

Желательно
Progamer786 вне форума Ответить с цитированием
Старый 21.11.2012, 00:30   #4
masax
Форумчанин
 
Регистрация: 01.10.2008
Сообщений: 248
По умолчанию

ну тогда наверное после того как пользователь ввел данные (Changed, Leave)
обработать посимвольно - строка ж это массив символов
Контакты
skype, почта: bm@kwax.ru

Последний раз редактировалось masax; 21.11.2012 в 00:31. Причина: поправочка)
masax вне форума Ответить с цитированием
Старый 21.11.2012, 00:42   #5
Progamer786
 
Регистрация: 18.11.2012
Сообщений: 7
По умолчанию

В моем коде поправьте пожалуйста
Progamer786 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Калькулятор в Microsoft Visual Studio Xme1ez Помощь студентам 0 05.06.2012 17:59
Простой калькулятор в Visual C++ Женька Good Помощь студентам 1 30.03.2012 22:40
C/C++ калькулятор среда visual studio vanua2 Помощь студентам 0 03.01.2012 14:31
Инженерный калькулятор (Visual Basic) askar Помощь студентам 5 19.12.2010 15:45
Visual C++ Калькулятор werser Помощь студентам 4 14.02.2010 13:31