funkymunkey99 Ответов: 1

Назначить изображения в элемент управления PictureBox из другой формы


Привет
У меня есть программа с 16 пустыми picturebox на главной форме, когда пользователь нажимает на одну коробку, он открывает другую форму (form2) с 17 picturebox, каждый из которых имеет определенное изображение, я хочу, чтобы конкретное изображение вошло в picturebox на главной форме.

Я использовал этот код на form2 для нажатия на один из 17 picturebox

With Mainform.picturebox1
     .Image = My.Resources._apicture01
     End With


Однако когда я нажимаю на picturebox2 в основной форме, он снова добавляет картинку в Mainform.picturebox1.

Мне нужен способ, чтобы он выяснил, какой из 16 picturebox на основной форме был нажат, а затем он добавляет конкретное изображение в этот picturebox.

Что я уже пробовал:

Я собирался использовать булеву переменную в главной форме, чтобы она была истинной в зависимости от того, какой picturebox был нажат, но тогда мне нужно было бы использовать 272 оператора if в form2. (16x17) я думал, что должен быть более простой способ?

1 Ответов

Рейтинг:
7

OriginalGriff

Либо создайте конструктор Form2, который принимает экземпляр изображения и отображает его, либо предоставьте свойство Image и передайте изображение во вновь созданную форму через него.

Form1 может знать о Form2 - он должен, он отображает его - но Form2 не должен ничего знать о Form1, он даже не может быть уверен, что Form1 отображает его!

Видеть здесь: Передача информации между двумя формами, Часть 1: Родитель-Ребенок[^] - код написан на C#, но это довольно очевидно.


funkymunkey99

Привет Я действительно не понимаю этого, я просто новичок :)

OriginalGriff

Вы не можете быть таким уж новичком и писать приложения для Windows Forms!

Вы знаете, что такое конструктор?
Вы знаете, что такое собственность?

Или, по крайней мере, я предполагаю, что вы делаете ...

funkymunkey99

Я могу делать очень простые вещи, я использую VB Community 2019 только в качестве хобби, я не делаю много приложений и только для себя.
Нет не знаю что такое конструктор
Является ли правильно частью такого компонента, как button1.text

Даже код, который я показал, был взят из примера, который я нашел в интернете!

OriginalGriff

Если вы не знаете этих основ, то вы пытаетесь бежать, прежде чем ходить (или, точнее, пытаетесь выиграть гонку Формулы-1, Прежде чем научиться водить машину!)

Серьезно, даже в качестве хобби, вы должны изучить этот материал должным образом - если вы этого не сделаете, вы никогда не поймете, как это сделать самостоятельно, или почему код, который Вы нам показали, настолько беден во всех отношениях.
Возьми книгу. Wrox делает некоторые хорошие вещи, как это делают Addison Wesley и Microsoft Press (или получите это и изучите C# вместо VB:
http://www.csharpcourse.com/
Она бесплатна и довольно хороша в основах (хотя Wrox, AD и MSP пойдут гораздо дальше в возможностях .NET, они довольно дороги - но некоторые библиотеки несут их).

Вам нужны основы довольно тщательно, и это включает в себя конструкторы, свойства, события, делегаты, лямбды и так далее. Без них вы никогда даже не узнаете, что было доступно, что могло бы сделать вашу жизнь намного проще.
Подумайте об этом: да, вы можете научиться водить машину, угнав автомобиль и вдавив педаль в металл, но это не научит вас, с какой скоростью выезжать за угол или что делать, когда автобус с монахинями поворачивает на ваш путь. :смеяться:
А это значит, что когда вы приобретете свой собственный автомобиль, он будет очень дорогим в ремонте, очень быстро!