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

Обработка клика при нажатии на динамически созданный pictureBox

03.05.2015, 22:32. Показов 3046. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть массив из pictureBox'ов
C#
1
PictureBox[,] pb = new PictureBox[9, 9];
и есть некоторая процедура
C#
1
2
3
4
private void NewGame()
{
//что-то тут
}
Как (программно) сделать так, что бы при клике на любой бокс срабатывала процедура?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.05.2015, 22:32
Ответы с готовыми решениями:

Каждой динамически созданной кнопке свой динамически созданный PictureBox
Добрый день. Надеюсь, что пишу в тот раздел. Находил немного похожие темы: каждая созданная кнопка оперирует с уже существующим объектом,...

Подписать на событие клика динамически созданный LinkLabel
Привет всем! такая проблема возникло.. есть множество linklebe которые я создаю при запущенном приложение таким способом ...

Клик по PictureBox: получение координат клика на PictureBox.Image
Собственно имею PictureBox, например размерами 500 на 500 и в нем есть картинка, например размерами 1000 на 1000, я ее масштабирую, что бы...

9
117 / 118 / 52
Регистрация: 19.12.2014
Сообщений: 612
03.05.2015, 22:52
Stif1304, а вы их как создаете? pictureBox-ы?
0
2 / 2 / 1
Регистрация: 31.10.2014
Сообщений: 19
03.05.2015, 23:07  [ТС]
вот так
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
   PictureBox[,] pb = new PictureBox[9, 9];
for (int i = 0; i < 9; i++)
            {
                for (int j = 0; j < 9; j++)
                {
                    pb[i, j].BackColor = Color.clGreen;
                    pb[i, j].Width = boxSize;
                    pb[i, j].Height = boxSize;
                    pb[i, j].Top = 30 + j * boxSize + j + j / 3;
                    pb[i, j].Left = 10 + i * boxSize + i + i / 3;
                    this.Controls.Add(pb[i, j]);
                    pb[i, j].BringToFront();
                }
              }
0
117 / 118 / 52
Регистрация: 19.12.2014
Сообщений: 612
03.05.2015, 23:32
Лучший ответ Сообщение было отмечено Stif1304 как решение

Решение

Stif1304, врете ничего он не создаст

Добавлено через 13 минут
Stif1304, а вот мой создаст и еще клик добавил
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
private void Form1_Load(object sender, EventArgs e)
        {
            PictureBox[,] pb = new PictureBox[9, 9];
            for (int i = 0; i < 9; i++)
            {
                for (int j = 0; j < 9; j++)
                {
                    pb[i,j]=new System.Windows.Forms.PictureBox();
                    pb[i, j].BackColor = Color.Green;
                    pb[i, j].Width = 10;
                    pb[i, j].Height = 10;
                    pb[i, j].Top = 30 + j * 100 + j + j / 3;
                    pb[i, j].Left = 10 + i * 100 + i + i / 3;
                    pb[i, j].Click += new EventHandler(Form1_Click);//Собственно событие
                    this.Controls.Add(pb[i, j]);
                    pb[i, j].BringToFront();
                }
            }
        }
 
        private void Form1_Click(object sender, EventArgs e)//Собственно обработчик события
        {
            MessageBox.Show("");
        }
1
112 / 100 / 13
Регистрация: 18.04.2015
Сообщений: 813
Записей в блоге: 2
03.05.2015, 23:34
в шахматы 10 на 10 играете?
0
117 / 118 / 52
Регистрация: 19.12.2014
Сообщений: 612
03.05.2015, 23:37
ivaska, выставил
C#
1
2
pb[i, j].Width = 90;
                    pb[i, j].Height = 90;
И получиться оптическая иллюзия в виде черных точек между квадратами
0
2 / 2 / 1
Регистрация: 31.10.2014
Сообщений: 19
04.05.2015, 00:29  [ТС]
ivaska, нет, судоку

Добавлено через 4 минуты
lokilo, вообщем, не после этого не отображаются эти пикчебоксы..
0
117 / 118 / 52
Регистрация: 19.12.2014
Сообщений: 612
04.05.2015, 00:37
Stif1304, нууууу даже не знаю, что тут сказать
0
2 / 2 / 1
Регистрация: 31.10.2014
Сообщений: 19
04.05.2015, 01:00  [ТС]
Ура!!! Заработало) Я просто немного на свою голову поменял код так, что строчка
C#
1
pb[0, 0].Click += new EventHandler(Form1_Click);
оказалась до строчки
C#
1
 pb[i, j] = new System.Windows.Forms.PictureBox();
Из-за этого и ошибка была. Спасибо!
0
0 / 0 / 0
Регистрация: 22.04.2016
Сообщений: 9
31.08.2016, 19:51
Подниму немножко тему) lokilo, а как-нибудь можно получить индекс элемента, на который кликнули?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.08.2016, 19:51
Помогаю со студенческими работами здесь

Открытие формы при нажатии клавиш и клика мышки
Есть обычная форма, и есть кнопка. При клике на Кнопку открывается другая форма, а как сделать так, чтобы при зажатых клавишах и клике...

Извлечь имя файла изображения, загруженного в динамически созданный picturebox
Здравствуйте. Подскажите, как можно извлечь при клике адрес изображения(т.е имя файла к примеру 1.jpg, 2.jpg) из динамически создаваемых...

Открытие другой формы при клике на динамически созданный Label
Здравствуйте. Подскажи, пожалуйста, как реализовать показ другой формы(Form2) по клику на изображение/лейбл, которые создаются динамически...

При нажатии крестика на закладке необходимо уничтожать созданный ранее TabSheet
Добрый вечер! При работе с созданием закладок в PageControl возникли сложности. Суть проблемы. По нажатию кнопки должна...

При открытии картинок на каждую динамически создавать Picturebox
Люди добрые, подскажите. Надо чтоб при открытии нескольких картинок динамически создавались Picturebox-ы для них и картинки помещались...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru