Как передать значение изображения picturebox в другое изображение с помощью массива vb.net - PullRequest
0 голосов
/ 15 мая 2018

Я новичок на vb.net, пожалуйста, помогите мне Как я могу передать свой picturebox1.image к picturebox2.image и значение picturebox2.image к picturebox3.image. Суть в том, что каждый раз, когда приходит новое изображение, оно похоже на изображение, движущееся вперед. Входящее изображение будет идти в picturebox1. И старое значение picturebox1 переместится в picturebox2, а значение picturebox2 перейдет в picturebox3. Я не знаю, как построить логику в коде. Помогите мне, пожалуйста

1 Ответ

0 голосов
/ 16 мая 2018

Хорошо, есть несколько способов сделать это.Я использую свою базу данных для постоянного хранения изображений, поэтому я покажу вам способ отображения изображений в порядке их извлечения из базы данных.Вы правы в том, что если вы назначите pic2.image для pic1.image и т. Д., Все графические блоки будут иметь одно и то же изображение, потому что это значение pic1, при обратном порядке происходит то же самое.Вам нужно назначить изображение, которое вы хотите в каждом графическом окне, этому графическому блоку.

Сначала я создаю список изображений, все они в формате jpg, но это не должно иметь значения:

Imports System.Drawing ' <---- I assume you have this at the top of the code behind
Dim MyImages as List(of Image) 

Я получаю изображения из базы данных в виде данных в порядке возрастания первичного ключа, ключ от 1 до n и заполняю список:

Dim x as Integer = 1
pictureboxname = "pic" & x
For Each MyDataRow as DataRow in MyTable.Rows
    ' Load the list, the image is in column zero
    MyImages.Add(MyDataRow(0))
    ' because this is the initial list, you can also populate the pictureboxes too
    ' you need to use the picturebox name in an expression to populate the pictureboxes in a loop.
    ' Something like this .... this is untested
    (pictureboxname).Image = MyImages(MyImages.Count -1) 
    ' and change picturebox name to the next picture box
    x += 1
    ' I assume picturebox name is pic1, pic2, etc ....
    pictureboxname = "pic" + x
    ' you'll have to limit this loop to the number of pictureboxes you have if they are less than the number of images, but you get the idea
Next

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

StoreImage(NewImage)
MyImages.Add(NewImage)

Dim x as integer = 1
pictureboxname = "pic" & x
For each MyImage as Image in MyImages
    ' assign each image in turn to the picture boxes ... again, untested
    (pictureboxname).Image = MyImage
    x += 1
    pictureboxname = "pic" & x
    ' again, you'll have to limit this loop to the number of pictureboxes you have if it is less than the number of images ....
Next

Это не совсем то, что вы ищете, но вам следует начать.

...