Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 1
Регистрация: 04.11.2013
Сообщений: 148

При нажатии на клавишу, соответствующая кнопка должна подсвечиваться на форме. Помогите разобраться

24.04.2014, 08:29. Показов 1537. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
нужно визуально изобразить клавиатуру со всеми клавишами
при нажатии на определенную клавишу, соответствующая клавиша подсвечиваться в форме.


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
const string row1 = "qwertyuiop";
        const string row2 = "asdfghjkl";
        const string row3 = "zxcvbnm";
        private void Form1_Load(object sender, EventArgs e)
        {
            int i = 0;
            foreach (var ch in row1)
                this.Controls.Add(CreateBtn(0, i++, 20, ch));
            i = 0;
            foreach (var ch in row2)
                this.Controls.Add(CreateBtn(7, i++, 48, ch));
            i = 0;
            foreach (var ch in row3)
                this.Controls.Add(CreateBtn(15, i++, 76, ch));
            KeyPreview = true;
        }
 
        protected override void OnKeyPress(KeyPressEventArgs e)
        {
            var btn = this.Controls.OfType<Button>().FirstOrDefault(b => (char)b.Tag == e.KeyChar);
            if (btn != null)
                btn.Select();
            base.OnKeyPress(e);
        }
 
        Button CreateBtn(int offset, int i, int y, char ch)
        {
            return new Button() { Size = new Size(25, 25), Location = new Point(offset + 23 * i, y), Tag = ch, Text = ch.ToString(), FlatStyle = FlatStyle.Flat };
        }

1. можете, сделать, для примера, еще клавишу Shift или Enter, дальше я сам попробую?
2. при запуске формы "q" по умолчанию выделена, как этого избежать?
3. как сделать, чтобы выделение было более явным(например красным)?
4. если мне нужно два языка, как можно скрыть, например русскую раскладку и показать английскую?
5. при выполнении этого кода подсветка идет, при нажатии клавиши, как сделать, чтобы это происходило про некоторых событиях внутри кода?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.04.2014, 08:29
Ответы с готовыми решениями:

При нажатии на клавишу F1 должна выполнятся функция
При нажатии на клавишу F1 должна выполнятся функция нажатия кнопки button1 на форме Подскажите как организовать

При нажатии мышью на соответствующую кнопку должна изменяться соответствующая переменная
Добрый день, форумчане) Вопрос у меня по глюту появился. Для написания простенькой игры нужно реализовать следующие вещи: 1. На экране...

Ссылка должна подсвечиваться при наведении на картинку
Ссылка должна подсвечиваться при наведении на картинку. А она подсвечивается только тогда, когда я навожу на нее сверху. И текст наверху,...

1
320 / 280 / 109
Регистрация: 27.09.2010
Сообщений: 1,058
24.04.2014, 16:50
Почему бы вам просто напросто не изменять цвет фона кнопки?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.04.2014, 16:50
Помогаю со студенческими работами здесь

Организовать движение объекта по форме при нажатии на клавишу
Всем привет. Подскажите, пожалуйста, как правильно организовать движение объекта по форме при нажатии на клавишу. Уточню: при...

Нужно при нажатии на клавишу нажать кнопку на форме
У меня есть программа, и я хочу что бы при нажати к примеру на &quot;q&quot;, у меня нажималась кнопка1, при этом я нахажусь в игре)

Как сделать так, чтобы при нажатии на клавишу Enter вызывалась кнопка Button
Имеется два TextBox, два RegularExpressionValidator, два RequiredFieldValidator и кнопка Button Как сделать так, чтобы при нажатии...

При нажатии в любую часть формы кнопка должна появится на этом месте
Вообщем такие две задачки (очень легкие, но так как я ную еще в этом дела, то помогите пожалуйста) в общем : 1) при нажатии в любую...

При нажатии кнопки на форме в боксе должна быть нарисована циклоида
Всем привет. Столкнулся со следующим заданием-нужно построить циклоиду. прога должна работать след образом-при нажатии кнопки на форме в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru