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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.07.2009, 14:44   #1
bradulov
Новичок
Джуниор
 
Регистрация: 09.07.2009
Сообщений: 2
По умолчанию помогите с ошибкой фокуса кнопки

Добрый день всем форумчанам! Начинаю изучать C#,книгу скачал Культина "C# в примерах и задачах" и споткнулся об ошибку вероятно в коде программы ниже (Программа подсчета электроэнергии:


(label)Предыдущее показание счетчика: TextBox1
(label)Текущее показание счетчика: TextBox2
(label)Цена за кВт:TextBox3

ВЫЧИСЛИТЬ(кнопка)(первончально стоит Enabled=false)


------------------------------------------
- поле для вывода -
- -
------------------------------------------

вСе работает и фокус переходит при нажатии Enter по Textboxam но после не засвечивается кнопка Вычислить и далее конечно не считает результат

Компилировал - ошибок нет vstudio 2008. Спасибо!!

Код:
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 ElectroEnergy
{
    public partial class Form1 : Form
    {
        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;
            }
            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() == ",") && (textBox2.Text.IndexOf(",") == -1)))
                    e.Handled = true;
            }
            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() == ",") && (textBox2.Text.IndexOf(",") == -1)))
                    e.Handled = true;
            }
            if (e.KeyChar.Equals((char)13))
                button1.Focus();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            float prev;
            float curr;
            float traf;
            float price;

           // label5.Text = "";
            try
            {
                prev = Convert.ToSingle(textBox1.Text);
                curr = Convert.ToSingle(textBox2.Text);
                traf = Convert.ToSingle(textBox3.Text);
         

                if (curr >= prev)
                {
                    price = (curr - prev) * traf;
                    label5.Text = "Сумма к оплате = " + price.ToString("C");
                }
                else
                {
                    MessageBox.Show("Ошибка исходных данных" +
                        "Исходные данные имеют неверный формат"+"меньше предыдущего","Элекроэнергия",
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Error);
                }
            }
            catch (Exception exc)
            {
                MessageBox.Show("Ошибка исходных данных" +
                        "Исходные данные имеют неверный формат" + exc.Message,
                        "Электроэнергия",
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Error);

            }
        }

        

        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            label5.Text = "";
            if ((textBox1.Text.Length == 0) ||
                (textBox2.Text.Length == 0)||
                (textBox3.Text.Length == 0))
                button1.Enabled = false;
            else
                button1.Enabled = true;
        }

        

        
    }
}

Последний раз редактировалось Sazary; 09.07.2009 в 16:20.
bradulov вне форума Ответить с цитированием
Старый 09.07.2009, 16:54   #2
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Ты включаешь свою кнопку button1.Enabled = true; только при изменении текста в textBox1. Добавь обработчики на все textBox'ы
Hollander вне форума Ответить с цитированием
Старый 09.07.2009, 18:33   #3
bradulov
Новичок
Джуниор
 
Регистрация: 09.07.2009
Сообщений: 2
По умолчанию

Цитата:
Сообщение от Hollander Посмотреть сообщение
Ты включаешь свою кнопку button1.Enabled = true; только при изменении текста в textBox1. Добавь обработчики на все textBox'ы
Спасибо большое действительно помогло!!
bradulov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с ошибкой Wildangel0990 Помощь студентам 6 02.07.2009 10:10
Передача фокуса по нажатию кнопки Ch00kan0ff Общие вопросы C/C++ 2 27.03.2009 20:53
Помогите с ошибкой Bigtyoma Общие вопросы Delphi 1 24.12.2008 19:48
помогите с ошибкой Titan123 Общие вопросы Delphi 9 18.07.2008 15:12