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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2014, 02:10   #1
julia9311
Пользователь
 
Регистрация: 23.06.2012
Сообщений: 69
По умолчанию Неправильно работает программа (С#)

При нажатии комбинации кнопок cUocDo должен быть таким:
Текущее состояние: oD
Текущее состояние: cD
Текущее состояние: cU
Текущее состояние: oU
Текущее состояние: cU
Текущее состояние: cD
Текущее состояние: oD
Но уже при нажатии кнопок cU появляется такой результат:
Текущее состояние: oD
Текущее состояние: cD
Текущее состояние: oD
Недопустимый переход

Может, нужно учитывать кнопки, которые были нажаты, но как это сделать?

Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
 
 
public class MyForm : Form
{
 
    enum StateType { oD, cD, cU, oU }
    StateType State = StateType.oD;
    private Button button1;
    private Button button2;
    private Button button3;
    private Button button4;
    private void btnClick(Object sender, EventArgs ea)
    {
        Button bt = (Button)sender;
 
        StateType State = StateType.oD;
        try
        {
 
            Console.WriteLine("Текущее состояние: {0}", State);
            switch (State)
            {
                case StateType.oD: switch (bt.Text)
                    {
                        case "c": State = StateType.cD; break;
                        default: throw new Exception();
                    }
                    break;
                case StateType.cD: switch (bt.Text)
                    {
 
                        case "o": State = StateType.oD; break;
                        case "U": State = StateType.cU; break;
                        default: throw new Exception();
                    }
                    break;
                case StateType.cU: switch (bt.Text)
                    {
                        case "D": State = StateType.cD; break;
                        case "o": State = StateType.oU; break;
                        default: throw new Exception();
                    }
                    break;
                case StateType.oU: switch (bt.Text)
                    {
                        case "c": State = StateType.cU; break;
                        default: throw new Exception();
                    }
                    break;
            }
            Console.WriteLine("Текущее состояние: {0}", State);
        }
        catch (Exception)
        {
            Console.WriteLine("Недопустимый переход");
            Console.ReadLine();
        }
    }
 
                  
 
    public MyForm()
    {
 
 
        ClientSize = new System.Drawing.Size(600, 400);
        StartPosition = FormStartPosition.CenterScreen;
        this.Text = "All Laucher";
 
        button1 = new Button();
        button1.Name = "c";
        button1.Text = "c";
        button1.Width = 100;
        button1.Height = 30;
        button1.Location = new System.Drawing.Point(50, 150);
        this.button1.Click += new System.EventHandler(this.btnClick);
        button2 = new Button();
        button2.Name = "o";
        button2.Text = "o";
        button2.Width = 100;
        button2.Height = 30;
        button2.Location = new System.Drawing.Point(50, 50);
 
        this.button2.Click += new System.EventHandler(this.btnClick);
        button3 = new Button();
        button3.Name = "U";
        button3.Text = "U";
        button3.Width = 100;
        button3.Height = 30;
        button3.Location = new System.Drawing.Point((ClientRectangle.Width - button1.Size.Width) / 50, ClientRectangle.Height - 150);
 
        this.button3.Click += new System.EventHandler(this.btnClick);
        button4 = new Button();
        button4.Name = "D";
        button4.Text = "D";
        button4.Width = 100;
        button4.Height = 30;
        button2.Location = new System.Drawing.Point(250, 250);
 
        this.button4.Click += new System.EventHandler(this.btnClick);
        Controls.AddRange(new System.Windows.Forms.Control[] { this.button1 });
        Controls.AddRange(new System.Windows.Forms.Control[] { this.button2 });
        Controls.AddRange(new System.Windows.Forms.Control[] { this.button3 });
        Controls.AddRange(new System.Windows.Forms.Control[] { this.button4 });
    }
    public static void Main()
    {
 
 
 
        Application.Run(new MyForm());
        Console.ReadLine();
    }
 
 
}
julia9311 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Структуры. Программа работает неправильно. Даша1046 Помощь студентам 1 06.07.2013 18:35
неправильно работает программа CppForYou Общие вопросы C/C++ 0 26.04.2013 01:13
С++. Неправильно работает программа. Новенькая.. Помощь студентам 2 04.10.2012 00:01
Программа работает неправильно. Настюня Помощь студентам 2 16.06.2012 18:34
Программа с интервалами неправильно работает pahanzona Общие вопросы Delphi 2 11.03.2011 16:09