<MyRusakov.ru />

WordPress 6 с Нуля до Гуру

WordPress 6 с Нуля до Гуру

Этот курс научит Вас созданию самых разных сайтов на самой популярной в мире CMS - WordPress. Вы увидите установку и настройку локального сервера, разбор каждой настройки, каждой кнопки и каждого пункта меню в панели WordPress.

Также Вы получите и всю практику, поскольку прямо в курсе с нуля создаётся полноценный Интернет-магазин, который затем публикуется в Интернете. И всё это прямо на Ваших глазах.

Помимо уроков к курсу идут упражнения для закрепления материала.

И, наконец, к курсу идёт ценнейший Бонус по тому, как используя ChatGPT и создавая контент для сайта, можно выйти на пассивный доход. Вы наглядно увидите, как зарегистрироваться в ChatGPT (в том числе, и если Вы из России), как правильно выбрать тему для сайта, как правильно генерировать статьи для него(чтобы они индексировались поисковыми системами) и как правильно монетизировать трафик на сайте.

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

Обработка нажатия клавиш в C# и WindowsForms на примере синтезатора

Обработка нажатия клавиш в C# и WindowsForms на примере синтезатора

В одной из предыдущих статей мы рассмотрели как создать простейший синтезатор на WindowsForms. На данный момент нажатие по клавишам синтезатора возможно при помощи клика мыши. В сегодняшней статье мы рассмотрим как использовать для этой цели ввод с клавиатуры в C# и WindowsForms.

Наша цель- это использование клавиш клавиатуры для нажатия по кнопкам синтезатора, а также отображение состояния нажатой клавиши.

Ниже приведен полный код.



using System.Media;


namespace WinFormsApp_Piano
{
    public partial class Form1 : Form
    {


        private SoundPlayer _soundPlayer;


        public Form1()
        {
            InitializeComponent();

            // Включаем предварительное прослушивание клавиш формы
            KeyPreview = true;
        }


        # метод для обработки ввода клавиатуры
        private void MainForm_KeyDown(object sender, KeyEventArgs e)
        {
            Button buttonToClick = null;

            switch (e.KeyCode)
            {
                case Keys.Q:
                    buttonToClick = button1;
                    break;
                case Keys.W:
                    buttonToClick = button2;
                    break;
                case Keys.E:
                    buttonToClick = button3;
                    break;
                case Keys.A:
                    buttonToClick = button4;
                    break;
                case Keys.S:
                    buttonToClick = button5;
                    break;
                case Keys.D:
                    buttonToClick = button6;
                    break;
                case Keys.Z:
                    buttonToClick = button7;
                    break;
                case Keys.X:
                    buttonToClick = button8;
                    break;

                }

                 if (buttonToClick != null)
                 {
                    HighlightButton(buttonToClick);
                    buttonToClick.PerformClick();
                    }

            }

         # метод для изменения состояния клавиши
          private void HighlightButton(Button button)
        {
            // Временно меняем цвет фона кнопки
            button.BackColor = SystemColors.GrayText;

            // Создаем обработчики событий GotFocus и LostFocus для кнопки
            button.GotFocus += Button_GotFocus;
            button.LostFocus += Button_LostFocus;

            // Принудительно вызываем событие GotFocus для кнопки
            button.Focus();
        }

        # метод отслеживающий активность клавиши
        private void Button_GotFocus(object sender, EventArgs e)
        {
            // Восстанавливаем исходный цвет фона кнопки при фокусировке
            Button button = (Button)sender;
            button.BackColor = SystemColors.Control;
        }


        private void Button_LostFocus(object sender, EventArgs e)
        {
            // Восстанавливаем исходный цвет фона кнопки при потере фокуса
            Button button = (Button)sender;
            button.BackColor = SystemColors.Control;
            button.GotFocus -= Button_GotFocus;
            button.LostFocus -= Button_LostFocus;
        }


        private void PlaySound(string soundFilePath)
        {
            _soundPlayer = new SoundPlayer(soundFilePath);
            _soundPlayer.Play();
        }


        private void button1_Click_1(object sender, EventArgs e)
        {

            PlaySound(Полный путь к файлу\\zvuk-notyi-do.wav");
        }

        private void button2_Click(object sender, EventArgs e)
        {
            PlaySound("Полный путь к файлу\\zvuk-notyi-sol.wav");
        }

        private void button3_Click(object sender, EventArgs e)
        {
            PlaySound("Полный путь к файлу\\zvuk-notyi-lya.wav");
        }

        private void button4_Click(object sender, EventArgs e)
        {
            PlaySound("Полный путь к файлу\\zvuk-notyi-mi.wav");
        }

        private void button5_Click(object sender, EventArgs e)
        {
            PlaySound("Полный путь к файлу\\zvuk-notyi-si.wav");
        }

        private void button6_Click(object sender, EventArgs e)
        {
            PlaySound("Полный путь к файлу\\zvuk-notyi-re.wav");
        }

        private void button7_Click(object sender, EventArgs e)
        {
            PlaySound("Полный путь к файлу\\zvuk-notyi-fa.wav");
        }

        private void button8_Click(object sender, EventArgs e)
        {
            PlaySound("Полный путь к файлу\\zvuk-notyi-do-vo-vtoro-oktave.wav");
        }
    }

}

Таким образом, при нажатии по кнопкам клавиатуры будут воспроизведены звуки ноты, а также изменится внешний вид клавиши синтезатора.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.