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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2010, 19:06   #1
Ratio_Z
Новичок
Джуниор
 
Регистрация: 03.05.2009
Сообщений: 1
По умолчанию Прога считает сколько платить за электричество. Но в коде ошибка

Начал изучать C#
Сделал пример как в книге. Прога считает сколько платить за электричество. Но в коде ошибка ... не могу понять какая... подскажите плз.

public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
//Блокируем кнопку "Вычислить", доступна только при введённых цифрах.
button1.Enabled = false;
}

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
//Контроль правильности вводимых данных? только числа.
if(!Char.IsDigit(e.KeyChar) &&
!(Char.IsControl(e.KeyChar))){
if(!((e.KeyChar.ToString() == ",") &&
(textBox1.Text.IndexOf(",") == -1)))
e.Handled = true;}
//При нажатии кливиши "Enter" фокусируемся на поле ввода текущего показания счетчика
if(e.KeyChar.Equals ((char)13))
textBox2.Focus();
}
}

private void textBox2_KeyPress(object sender, KeyPressEventArgs e)
{
//Контроль правильности вводимых данных
if(!Char.IsDigit(e.KeyChar) &&
!(Char.IsControl(e.KeyChar))){
if(!((e.KeyChar.ToString() == ",") &&
(textBox1.Text.IndexOf(",") == -1)))
e.Handled = true;}
//Если нажита "Enter" фиксируемся на вводе цены
if(e.KeyChar.Equals ((char)13)
textBox3.Focus();
}
}

private void textBox3_KeyPress(object sender, KeyPressEventArgs e)
{
//Контроль правильности вводимых данных
if(!Char.IsDigit(e.KeyChar) &&
!(Char.IsControl(e.KeyChar))){
if(!((e.KeyChar.ToString() == ",") &&
(textBox1.Text.IndexOf(",") == -1)))
e.Handled = true;}
//Если нажита "Enter" фиксируемся на Кнопке Вычеслить
if(e.KeyChar.Equals ((char)13)
button1.Focus();
}


private void textBox1_KeyUp(object sender, KeyEventArgs e)
{
//Отработка событий для полей "Цена" "Предыдузая" и "текущая"
//Контроль доступности кнопки вычислить
if((textBox1.Text.Length > 0) &&
(textBox2.Text.Length > 0) &&
(textBox3.Text.Length > 0))
button1.Enabled = true;
else button1.Enabled = false;

}

private void button1_Click(object sender, EventArgs e)
{
float curr; ///текущее показание счетчика
float prev;//Предыдущее показание счетчика
float price; //сумма к оплате
float traf; //Цена за киловат

label4.Text = "";

//исходные данные
prev = Convert.ToSingle(textBox1.Text);
curr = Convert.ToSingle(textBox2.Text);
traf = Convert.ToSingle(textBox3.Text);

if(curr >= prev) {
//вычисляем сумму к оплате
price = (curr-prev)*traf;
//вывод результата
label4.Text = "Сумма к оплате: " + price.ToString("C");
}
else{
MessageBox.Show("Ошибка исходных данных. \n" +
"Текущее значение показания счётчика \n" +
"меньше пердыдущего.", "Электроэнергия",

MessageBoxButtons.OK,
MessageBoxIcon.Error);
}

}
Ratio_Z вне форума Ответить с цитированием
Старый 23.01.2010, 09:09   #2
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
По умолчанию

Цитата:
Но в коде ошибка ... не могу понять какая... подскажите плз.
Компилятор ругается(что говорит) или работает не корректно?
dampirik вне форума Ответить с цитированием
Старый 23.01.2010, 11:36   #3
fixo
Новичок
Джуниор
 
Регистрация: 28.12.2009
Сообщений: 1
По умолчанию

У тебя просто не хватает скобок кое-где:
Код:
        private void Form1_Load(object sender, EventArgs e)
        {
            //Блокируем кнопку "Вычислить", доступна только при введённых цифрах.
            button1.Enabled = false;
        }

        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            //Контроль правильности вводимых данных? только числа.
            if (!Char.IsDigit(e.KeyChar) &&
            !(Char.IsControl(e.KeyChar)))
            {
                if (!((e.KeyChar.ToString() == ",") &&
                (textBox1.Text.IndexOf(",") == -1)))
                    e.Handled = true;
            }
            //При нажатии кливиши "Enter" фокусируемся на поле ввода текущего показания счетчика
            if (e.KeyChar.Equals((char)13))
                textBox2.Focus();
        }


        private void textBox2_KeyPress(object sender, KeyPressEventArgs e)
        {
            //Контроль правильности вводимых данных
            if (!Char.IsDigit(e.KeyChar) &&
            !(Char.IsControl(e.KeyChar)))
            {
                if (!((e.KeyChar.ToString() == ",") &&
                (textBox1.Text.IndexOf(",") == -1)))
                    e.Handled = true;
            }
            //Если нажита "Enter" фиксируемся на вводе цены
            if (e.KeyChar.Equals((char)13))
                textBox3.Focus();
        }


        private void textBox3_KeyPress(object sender, KeyPressEventArgs e)
        {
            //Контроль правильности вводимых данных
            if (!Char.IsDigit(e.KeyChar) &&
            !(Char.IsControl(e.KeyChar)))
            {
                if (!((e.KeyChar.ToString() == ",") &&
                (textBox1.Text.IndexOf(",") == -1)))
                    e.Handled = true;
            }
            //Если нажита "Enter" фиксируемся на Кнопке Вычеслить
            if (e.KeyChar.Equals((char)13))
                button1.Focus();
        }


        private void textBox1_KeyUp(object sender, KeyEventArgs e)
        {
            //Отработка событий для полей "Цена" "Предыдузая" и "текущая"
            //Контроль доступности кнопки вычислить
            if ((textBox1.Text.Length > 0) &&
            (textBox2.Text.Length > 0) &&
            (textBox3.Text.Length > 0))
                button1.Enabled = true;
            else button1.Enabled = false;

        }

        private void button1_Click(object sender, EventArgs e)
        {
            float curr; ///текущее показание счетчика
            float prev;//Предыдущее показание счетчика
            float price; //сумма к оплате
            float traf; //Цена за киловат

            label4.Text = "";

            //исходные данные
            prev = Convert.ToSingle(textBox1.Text);
            curr = Convert.ToSingle(textBox2.Text);
            traf = Convert.ToSingle(textBox3.Text);

            if (curr >= prev)
            {
                //вычисляем сумму к оплате
                price = (curr - prev) * traf;
                //вывод результата
                label4.Text = "Сумма к оплате: " + price.ToString("C");
            }
            else
            {
                MessageBox.Show("Ошибка исходных данных. \n" +
                "Текущее значение показания счётчика \n" +
                "меньше пердыдущего.", "Электроэнергия",

                MessageBoxButtons.OK,
                MessageBoxIcon.Error);
            }



        }
~'J'~
fixo вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в коде konstantinopol Общие вопросы по Java, Java SE, Kotlin 1 26.10.2009 23:21
Ошибка в коде.. NSvirus PHP 4 14.10.2009 22:57
Ошибка в коде Bigtyoma Общие вопросы Delphi 9 10.06.2009 16:35
Сколько будет стоить прога? Dusty Свободное общение 1 13.03.2009 16:40
Ошибка в коде hacknet Компоненты Delphi 12 07.12.2008 14:23