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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2013, 01:32   #1
mdekalka
Пользователь
 
Регистрация: 18.12.2011
Сообщений: 14
По умолчанию Отследить - все ли клавишы нажаты

Добрый вечер.
Есть несколько кнопок, которые могут нажиматься в любом порядке, если все они хоть раз были нажаты(все вместе), то сделать n-ую кнопку видимой.

Вроде все описал, но куда вставить метод ButtonGO()?

Код:
bool button1Clicked = false;
    bool button2Clicked = false;
    bool button3Clicked = false;

  private void pulseButton1_Click(object sender, EventArgs e)
        {
           
            button2Clicked = true;
        }
 private void pulseButton2_Click(object sender, EventArgs e)
        {
            
            button2Clicked = true;
        }
 private void pulseButton3_Click(object sender, EventArgs e)
        {
          
            button2Clicked = true;
        }


  private void ButtonGo()
        {
            if (button1Clicked == true && button2Clicked == true && button3Clicked == true )
            {
                pulseButton5.Visible = true;
                
            }

        }
mdekalka вне форума Ответить с цитированием
Старый 18.01.2013, 07:07   #2
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Наверное, вот так, если я правильно понял Вас
Код:
bool button1Clicked = false;
    bool button2Clicked = false;
    bool button3Clicked = false;

  private void pulseButton1_Click(object sender, EventArgs e)
        {
           
            button1Clicked = true;
            ButtonGo();
        }
 private void pulseButton2_Click(object sender, EventArgs e)
        {
            
            button2Clicked = true;
            ButtonGo();
        }
 private void pulseButton3_Click(object sender, EventArgs e)
        {
          
            button3Clicked = true;
            ButtonGo();
        }


  private void ButtonGo()
        {
            if (button1Clicked == true && button2Clicked == true && button3Clicked == true )
            {
                pulseButton5.Visible = true;
                
            }

        }
Но, это уж совсем плохой подход, решение в лоб, я советую Вам почитать умных книжек по сишарпу и вообще по визуальному программированию.
Я бы так никогда не стал делать. Я бы, как минимум, метод написал для всех кнопок один, имена дал бы нормальные.

Последний раз редактировалось phomm; 18.01.2013 в 07:10.
phomm вне форума Ответить с цитированием
Старый 31.01.2013, 18:18   #3
mrMeerkat
Следопыт
Форумчанин
 
Аватар для mrMeerkat
 
Регистрация: 26.04.2012
Сообщений: 307
По умолчанию

Там как-то по-проще можно перебрать кнопки на форме, не зацепив остальные контролы(сейчас не вспомню), но идея примерно такова:
Код:
        Program()
        {
            InitializeComponent();

            button1.Enabled = false;
            button1.Tag = true;

            foreach (Control b in Controls)//заглушка
            {
                if(b is Button)
                    b.Click += new EventHandler(button_Click);
            }
        }

        private void InitializeComponent()
        {...}

        private void button_Click(object sender, EventArgs e)
        {
            (sender as Button).Tag = true;
            ButtonGo();
        }
        private void ButtonGo()
        {
            foreach (Control b in Controls)
            {
                if (!(b is Button))
                    continue;
                if (Convert.ToBoolean(b.Tag) != true)
                    return;
            }
            button1.Enabled = true;
        }
     }
С Баша:Быть ленивым, глупым, жадным, да и просто редкостным гандоном и мудаком по жизни номально, а вот если ты матом ругаешься-то это да, ужасно и достойно общественного порицания.
mrMeerkat вне форума Ответить с цитированием
Старый 01.02.2013, 11:56   #4
Reskov
Форумчанин
 
Аватар для Reskov
 
Регистрация: 17.12.2008
Сообщений: 250
По умолчанию

Цитата:
foreach (Control b in Controls)
{
if (!(b is Button))
continue;
вместо этого вы наверное это имели ввиду)
Код:
 foreach (var b in Controls.OfType<Button>())
Reskov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Горячие клавишы в приложении! Leximus Общие вопросы Delphi 1 07.06.2012 18:46
как с иметировать нажатие клавишы ENTER ? pufystyj Общие вопросы C/C++ 5 11.11.2010 20:05
нажатие клавишы S-K-A-Y-T Общие вопросы C/C++ 1 10.11.2010 14:51
Горячие клавишы Warhead Microsoft Office Access 1 22.12.2009 19:07
как мне узнать когда одновременно нажаты две клавиши vitalik007 Помощь студентам 8 11.10.2007 17:13