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

Не могу обратится к определенному элементу массива

24.03.2014, 13:37. Показов 1240. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача такова: Если картинки совпадают, элементы пропадают. Если картинки разные на них загружается изображение рубашки. Цель игрока найти все парные элементы.

Проблема в том что я не могу обратится к определенному элементу массива.

Внизу я прикрепил сам проект.
Вложения
Тип файла: zip project.zip (918.4 Кб, 3 просмотров)
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.03.2014, 13:37
Ответы с готовыми решениями:

Как обратится к определенному элементу односвязного списка под номером n?
Подскажите пожалуйста как в односвязном списке обратится к определенному элементу под номером n. Список объявлен так: Type ...

Обратится к элементу массива
В результате запроса mysqli выдаёт результат в var_dump array(2) { => string(3) "600" => string(35) "Тестовый...

Как обратится к элементу массива
Есть некий массив a a= ; как обратится к этому массиву чтобы поменять только одно из значений например name, a age при этом осталось бы...

7
0 / 0 / 0
Регистрация: 22.03.2014
Сообщений: 10
24.03.2014, 14:42  [ТС]
Таким способ я создаю массив

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
PictureBox[] picture;
        
        
 
        public Form1()
        {
            InitializeComponent();
        }
 
 
 
private void button1_Click(object sender, EventArgs e)
        {
picture = new PictureBox[4];
           
            int z = 0;
 
            for (int j = 0; j < picture.GetLength(0); j++)
            {
 
                for (int i = 0; i < picture.GetLength(0); i++)
                {
 
                    PictureBox pic = new PictureBox();
 
                    pic.Location = new Point(i * 52, 52 * j);
                    pic.Size = new Size(45, 45);
                    pic.Text = z.ToString();
                    pic.Click += new EventHandler(Picture_Click);
                    panel.Controls.Add(pic);
                    pic.BackgroundImage = Properties.Resources.krest;
                    z++;
                }
            }
Добавлено через 57 минут
Прошу помощи, т.к. завтра сдавать проект!
0
 Аватар для Spawn
995 / 893 / 354
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
24.03.2014, 14:51
А где Вы пытаетесь обратиться?
Я вижу переменную picture, которая и является Вашим массивом (причём одномерным), однако в цикле Вы кладёте новые картинки только на саму панель:
C#
1
panel.Controls.Add(pic);
16 картинок положить в одномерный массив всяк не получится, соответственно, либо обращайтесь через коллекцию Controls у panel, либо создавайте двумерный массив picture и главное не забудьте помимо panel положить созданную картинку в массив.
0
0 / 0 / 0
Регистрация: 22.03.2014
Сообщений: 10
24.03.2014, 15:06  [ТС]
Обращаюсь к нему я в таймере. Для загрузки нужной картинки у меня есть listbox в котором 16 позиций. Поэтому для меня одномерный массив является оптимальным(по моему мнению).

Добавлено через 1 минуту
Картинки почти для каждого picturebox разные. Их я загружаю таким образом
C#
1
2
3
string resName = "pic0" + LstForPole.Items[Convert.ToInt32(picture.Text)].ToString();
                object resObj = Properties.Resources.ResourceManager.GetObject(resName);
                picture.Image = (Bitmap)resObj;
Добавлено через 5 минут
А и в picture.Text содержится значение от 0 до 15. Для каждого pictureBox свое
0
 Аватар для Spawn
995 / 893 / 354
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
24.03.2014, 15:18
Лучший ответ Сообщение было отмечено CStart как решение

Решение

Хорошо, используем свойство Text как средство поиска:
C#
1
PictureBox search = panel.Controls.OfType<PictureBox>().Single(p => p.Text == "1");
0
0 / 0 / 0
Регистрация: 22.03.2014
Сообщений: 10
24.03.2014, 15:28  [ТС]
Хорошо, и что нам это даст?
0
 Аватар для Spawn
995 / 893 / 354
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
24.03.2014, 15:29
Цитата Сообщение от CStart Посмотреть сообщение
Проблема в том что я не могу обратится к определенному элементу массива.
В указанном примере я получил PictureBox с индексом "1", ко второму элементу массива то бишь обратился. Где я ошибся?
0
0 / 0 / 0
Регистрация: 22.03.2014
Сообщений: 10
24.03.2014, 16:17  [ТС]
Нет, в смысле как мне его теперь использовать?

Добавлено через 14 минут
ну вот обратились мы, и что дальше делать? Как мне например название достать из него или картинку поменять..

Добавлено через 26 минут
такой способ к сожалению не работает
C#
1
PictureBox search = panel.Controls.OfType<PictureBox>().Single(p => p.Text == "1").Image=Properties.Resources.krest;
Добавлено через 3 минуты
Все, разобрался! Спасибо большое!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.03.2014, 16:17
Помогаю со студенческими работами здесь

Обратиться к определённому элементу массива в foreach
foreach (string i in Console.ReadLine().Trim(' ').Split(' ')) Console.Write(&quot;{0}&quot;, String.IsNullOrEmpty(i) ? i : &quot; &quot; + i); как...

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

Обратится к элементу
Как обратится к метке родительского элемента, и изменить ее значение? Для того чтобы изменить значение текстового поля формы, я...

Как обратится к элементу
Подскажите как получить достук к элементу с id который создается программно через массив причем id указан в xml convertView =...

Как обратится к элементу на сайте?
Как обратится к элементу &quot;Menu&quot; на данном примере? То есть я хочу если у &quot;Menu&quot; display == none, то сделать область видимым (хз как это...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru