Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 05.04.2018
Сообщений: 4

Фиксация нажатия клавиши

15.04.2018, 20:28. Показов 3633. Ответов 3

Студворк — интернет-сервис помощи студентам
День добрый! Подскажите пожалуйста, как можно зафиксировать нажатие кнопки, когда она находится над другой кнопкой. Например: есть две кнопки, рандомно перемещающиеся на форме. Необходимо уловить момент когда эти кнопки будут находится на одном месте и нажать на них. если происходит нажатие, то это засчитывается как правильная попытка. Подскажите пожалуйста.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.04.2018, 20:28
Ответы с готовыми решениями:

Событие нажатия клавиши
Подскажите как можно к форме привязать обработчик события нажатия какой-то конкретной клавиши на клавиатуре?

Подмена нажатия клавиши
Вот пример глобального хука, блокирующего нажатие Alt+Tab namespace WindowsFormsApplication3 { public partial class Form1 : Form ...

Эмуляция нажатия клавиши в игре
Всем привет . Нужно сделать чтоб нажималась клавиша Enter в игре Но с таким кодом игра крашится (Не отвечает) Подскажите как...

3
123 / 123 / 70
Регистрация: 15.11.2014
Сообщений: 544
15.04.2018, 21:47
Сравнивать координаты, если совпали и при этом событие нажатия на одной из них сработало, тогда попытка успешна.
0
53 / 52 / 36
Регистрация: 25.05.2015
Сообщений: 162
15.04.2018, 22:08
Ничего не понятно! Их надо программно нажать, когда они будут в одном месте
Цитата Сообщение от ANIM3SHNIK Посмотреть сообщение
если происходит нажатие, то это засчитывается как правильная попытка.
или пользователь должен их нажать?
0
Эксперт .NET
 Аватар для Wolfdp
3790 / 1767 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
16.04.2018, 03:03
Лучший ответ Сообщение было отмечено ANIM3SHNIK как решение

Решение

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
30
31
32
33
34
35
36
37
38
39
    public partial class MainWindow : Window
    {
        Timer timer;
        double t1 = 1;
        double t2 = -2;
        double l1 = 0d;
        double l2 = 0d;
 
        public MainWindow()
        {
            InitializeComponent();
 
            timer = new Timer() { Interval = 20 };
            timer.Elapsed += (sender, e) =>
            {
                Dispatcher.Invoke(() =>
                {
                    l1 = nya1.Margin.Left + t1;
                    nya1.Margin = new Thickness(l1, nya1.Margin.Top, 0, 0);
                    l2 = nya2.Margin.Left + t2;
                    nya2.Margin = new Thickness(l2, nya2.Margin.Top, 0, 0);
                });
                if (l1 > 700 || l1 < 0) t1 = -1 * t1;
                if (l2 > 700 || l2 < 0) t2 = -1 * t2;
            };
            timer.Start();
        }
 
        protected override void OnClosing(CancelEventArgs e)
        {
            timer.Stop();
            base.OnClosing(e);
        }
 
        private void NyaMouseClick(object sender, MouseButtonEventArgs e)
        {
            MessageBox.Show(this, Math.Abs(nya1.Margin.Left - nya2.Margin.Left) < 4 ? "Win" : "Fail");
        }
    }
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<Window x:Class="Nya.ClickMe.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:Nya.ClickMe"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <Ellipse Name="nya1" Fill="#FFF4F4F5" HorizontalAlignment="Left" Height="100" Margin="85,45,0,0" Stroke="Black" VerticalAlignment="Top" Width="100" MouseDown="NyaMouseClick"/>
        <Ellipse Name="nya2" Fill="#FFF4F4F5" HorizontalAlignment="Left" Height="100" Margin="418,45,0,0" Stroke="Black" VerticalAlignment="Top" Width="100" MouseDown="NyaMouseClick"/>
 
    </Grid>
</Window>
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.04.2018, 03:03
Помогаю со студенческими работами здесь

Отслеживание нажатия любой клавиши
Как можно уловить нажатие любой клавиши (консоль)?

Эмуляция нажатия и удерживания клавиши
Как сэмулировать нажатие и удерживание клавиши на клавиатуре? const Int32 KeyeventfExtendedkey = 0x1; const Int32...

Имитация нажатия клавиши на клавиатуре
Добрый день! Передо мной встал вот такой вопрос, который решить у меня не получается. Прошу помощи у знающих пользователей. Собственно...

Отлов нажатия клавиши Enter
Добрый день. Такая проблема: есть форма, при нажатии на определенную кнопку вылазит еще одна форма(на ней текстбокс и кнопки ок и...

Определение длительности нажатия клавиши
Как определить какое время была нажата определённая клавиша в миллисекундах?


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru