Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/46: Рейтинг темы: голосов - 46, средняя оценка - 4.54
8 / 8 / 2
Регистрация: 20.02.2009
Сообщений: 139

Отслеживание нажатия кнопки на форме.

15.03.2009, 15:29. Показов 8545. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.

Вот столкнулся с такой проблемой. Вопрос прост:

Как отследить событие нажатия кнопки на форме и ,допустим, вывести msgbox, что кнопка нажата. Это не должно быть в процедуре обработки самой кнопки.

Я перебрал .Click, OnClick, MauseClick. Пишу условие:
C#
1
2
3
4
5
6
7
public Form1()
{
  If("не знаю как попасть на это событие, выполнено ли оно") 
  {
  MessageBox("ВЫ нажаи кнопку");
  }
}
Спасибо.

ПС: поиск по форуму плодов пока ничего не дал.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.03.2009, 15:29
Ответы с готовыми решениями:

Отслеживание события нажатия кнопки на форме
Пишу программу - тестер для студентов (заодно выслушаю критику по коду) Есть xml-файлик с вопросами и вариантами ответов, а так же...

Отслеживание нажатия кнопки на панели
На панели расположено 94 кнопки. Подскажите, пожалуйста, как отследить нажатие каждой из них не используя свойство button_Click

Отслеживание нажатия кнопки на контроле
Привет.Сделал контрол что то типа трекбара для плеера. using System; using System.Collections.Generic; using...

16
1923 / 428 / 41
Регистрация: 12.07.2007
Сообщений: 2,062
16.03.2009, 03:08
В дизайнере формы дважды кликните на нужной кнопке. Автоматически создастся метод для обработки события нажатия кнопки. Больше никак. Можно привязывать более одного метода.
0
8 / 8 / 2
Регистрация: 20.02.2009
Сообщений: 139
16.03.2009, 10:06  [ТС]
Цитата Сообщение от Green Посмотреть сообщение
В дизайнере формы дважды кликните на нужной кнопке. Автоматически создастся метод для обработки события нажатия кнопки. Больше никак. Можно привязывать более одного метода.
Ну так то работает. Вопрос в том, можно ли в событии формы сделать отслеживание события кнопки (нажали на нее или нет) ? Если нет, то вопрос отклоняю.
0
 Аватар для RazorQ
591 / 357 / 16
Регистрация: 06.02.2009
Сообщений: 1,386
16.03.2009, 10:10
WinAPI... Не знаю как это будет на C#, но точно знаю что WinAPI
0
1923 / 428 / 41
Регистрация: 12.07.2007
Сообщений: 2,062
16.03.2009, 10:21
KIMka, что вам нужно реализовать?
Нужно узнать кнопка находится нажатой/отжатой?
0
8 / 8 / 2
Регистрация: 20.02.2009
Сообщений: 139
16.03.2009, 15:11  [ТС]
Цитата Сообщение от Green Посмотреть сообщение
KIMka, что вам нужно реализовать?
Нужно узнать кнопка находится нажатой/отжатой?
Нужно отследить момент, когда на нее нажмут.

Добавлено через 2 часа 3 минуты 37 секунд
Я бы хотел еще один вопрос задать здесь, чтобы не множиться.
Вопрос такой:
Как можно прописать переменную в классе, чтобы она хранила массив? Как хранить и менять просто числа я разобрался, а вот массив чисел пока ника не пойму.

Спасибо.
0
26 / 26 / 2
Регистрация: 10.02.2009
Сообщений: 114
16.03.2009, 15:21
Как ты хочешь отследить нажата ли кнопка или нет в "событии нажатия кнопки"
Если у тебя произошло событие клик то кнопка уже нажата т.е. этап отслеживания нажатия уже пройден....
0
8 / 8 / 2
Регистрация: 20.02.2009
Сообщений: 139
16.03.2009, 16:07  [ТС]
Я ,просто, хотел по нажатию кнопки записывать сколько раз она была нажата, т.е сколько раз произошло событие button_click.
Если у кого есть мысли, как это сделать, то подскажите, как сохранять предыдующую величину. Накопитель, чтоли какойто...

ПС: вопрос про переменную класса пока открыт.
0
 Аватар для Mecid
683 / 232 / 16
Регистрация: 15.10.2007
Сообщений: 1,246
16.03.2009, 16:15
C#
1
2
3
4
5
6
7
class P{
int a[100];
P(int z){
for(int i=0;i<a.lenght;++i)
this.a[i]=z;
}
}
0
85 / 85 / 6
Регистрация: 13.10.2008
Сообщений: 144
16.03.2009, 16:26
Создай переменную типа int внутри класса формы. Как уже писал Green в дизайнере кликни два раза по кнопке - создастся обработчик события нажатия кнопки(Click). И внутри этой функции инкрементируй переменную.
При созданной в дизайнере кнопке, код формы будет выглядеть примерно так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
namespace WindowsFormsApplication {
    public partial class Form1 : Form {
        public Form1() {
            InitializeComponent();
        }
        int count; //кол-во нажатий
        //эта функция вызывается при каждом клике по кнопке
        private void button1_Click(object sender, EventArgs e) {
            count++; //увеличиваем кол-во нажатий
 
            //Выводим MessageBox с кол-вом нажатий
            MessageBox.Show("Click number " + count);
        }
    }
}
1
8 / 8 / 2
Регистрация: 20.02.2009
Сообщений: 139
16.03.2009, 16:55  [ТС]
Цитата Сообщение от Feuer Посмотреть сообщение
Создай переменную типа int внутри класса формы. Как уже писал Green в дизайнере кликни два раза по кнопке - создастся обработчик события нажатия кнопки(Click). И внутри этой функции инкрементируй переменную.
При созданной в дизайнере кнопке, код формы будет выглядеть примерно так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
namespace WindowsFormsApplication {
    public partial class Form1 : Form {
        public Form1() {
            InitializeComponent();
        }
        int count; //кол-во нажатий
        //эта функция вызывается при каждом клике по кнопке
        private void button1_Click(object sender, EventArgs e) {
            count++; //увеличиваем кол-во нажатий
 
            //Выводим MessageBox с кол-вом нажатий
            MessageBox.Show("Click number " + count);
        }
    }
}
Все намного проще... хм )

Спасибо.

Добавлено через 14 минут 21 секунду
Цитата Сообщение от Mecid Посмотреть сообщение
C#
1
2
3
4
5
6
7
class P{
int a[100];
P(int z){
for(int i=0;i<a.lenght;++i)
this.a[i]=z;
}
}
Спасибо, но у меня в части for(int i=0;i<a.lenght;++i), для "a" в списке нет "lenght"
0
85 / 85 / 6
Регистрация: 13.10.2008
Сообщений: 144
16.03.2009, 19:03
Ну форма объявления массива такова:
тип_данных_элементов [] имя_переменной;
например: int[] ar; А чтобы выделить память под этот массив, необходимо написать следующее: ar = new int[колчиство_элементов]. Ну и поскольку массив - это объект, у него есть свойство Length - число элементов массива.
0
8 / 8 / 2
Регистрация: 20.02.2009
Сообщений: 139
16.03.2009, 19:41  [ТС]
Цитата Сообщение от Feuer Посмотреть сообщение
Ну форма объявления массива такова:
тип_данных_элементов [] имя_переменной;
например: int[] ar; А чтобы выделить память под этот массив, необходимо написать следующее: ar = new int[колчиство_элементов]. Ну и поскольку массив - это объект, у него есть свойство Length - число элементов массива.
Да эт понятно. массивы я научился строить ) .
Мне не понятно что в строке "for(int i=0;i<a.lenght;++i)" : при ее написании "int i = 0" - норм, ";i<a.lenght" - именно здесь после того когда пишу "a." у меня в выводившемся списке нет выбора слова "lenght". Вот что я этим хотел сказать, если конечно понятно что я сказал. )
0
85 / 85 / 6
Регистрация: 13.10.2008
Сообщений: 144
16.03.2009, 20:13
Так я ж и написал Length, с заглавной. Есть у каждого массива.
0
8 / 8 / 2
Регистрация: 20.02.2009
Сообщений: 139
16.03.2009, 21:49  [ТС]
Цитата Сообщение от Feuer Посмотреть сообщение
Так я ж и написал Length, с заглавной. Есть у каждого массива.
Вроде разобрался. Мне интересно вот еще, что: Почему в коде Mecid "++" стоит перед "i" ? (Или это просто опечатка?).

Спасибо.
0
85 / 85 / 6
Регистрация: 13.10.2008
Сообщений: 144
16.03.2009, 21:59
Цитата Сообщение от KIMka Посмотреть сообщение
Почему в коде Mecid "++" стоит перед "i" ? (Или это просто опечатка?).

Спасибо.
Нет это просто другая форма оператора инкремента - префиксная, а i++ - постфиксная. В данном случае разницы нет. А в целом суть такова:
int i = 0, int a;
a = i++; //сначала присвоим а значение i, а потом увеличим i на 1. (а будет равно 0)
i = 0;
a = ++i; //наоборот (а будет равно 1);
1
8 / 8 / 2
Регистрация: 20.02.2009
Сообщений: 139
16.03.2009, 22:10  [ТС]
Цитата Сообщение от Feuer Посмотреть сообщение
Нет это просто другая форма оператора инкремента - префиксная, а i++ - постфиксная. В данном случае разницы нет. А в целом суть такова:
int i = 0, int a;
a = i++; //сначала присвоим а значение i, а потом увеличим i на 1. (а будет равно 0)
i = 0;
a = ++i; //наоборот (а будет равно 1);
Понятно спс!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.03.2009, 22:10
Помогаю со студенческими работами здесь

C# Отслеживание нажатия двух клавиш на форме
Пишу приложение управления машинкой по WIFi. и вот застрял на том что не знаю как отследить нажатие одновременно двух клавиш...

отслеживание события нажатия кнопки программно
подскажите как отследить нажатие кнопки в другом потоке не в главном где созданы контролы а в другом. идет бесконечный цикл где будет...

После нажатия кнопки в первой форме, становится невидимым TextBox во второй форме
у меня 2 формы .в первой форме, после нажатия кнопки открывается вторая форма. как сделать чтобы после нажатия кнопки в первой форме ,...

Создайте обработчик события нажатия кнопки мыши на форме (Click), который будет устанавливать все кнопки в активный режи
Доброго времени суток! Помогите сделать задачу пожалуйста я полный ноль! (с описанием если можно:cry:) Уточните условие задания,...

Обработчик нажатия кнопки на форме
Всем привет! У меня есть несколько кнопок на форме. Допустим 5. Мне надо отловить нажатие каждой кнопки. Скажите пожалуйста, можно ли через...


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

Или воспользуйтесь поиском по форуму:
17
Закрытая тема Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru