Member 13032047 Ответов: 0

Как отобразить выбранные пользователем изображения из файла в нескольких графических полях (или)?


Привет, я новичок в VB, и я пытаюсь использовать несколько графических блоков на панели для отображения нескольких случайно выбранных пользователем изображений / изображений (JPG) из файла с помощью OpenFileDialog. Идея панели состоит в том, чтобы иметь возможность прокручивать несколько изображений / картинок рядом и в строках. Поскольку изображения / изображения должны быть случайным образом выбраны из файла пользователем, я не хочу использовать список изображений, который загружает только предварительно выбранный список изображений / изображений. Мои попытки найти код, который помещает другое изображение / изображение, выбранное пользователем, по одному в каждое графическое окно (например, PictureBox1 = Pic1; PictureBox2 = Pic2 и т. Д.), Привели к тому, что только одно изображение было создано во всех графических блоках, хотя я установил для свойства multiselect OpenFileDialog значение true?

Любая помощь будет очень признательна!

Спасибо,

Джон.

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

Private Sub SelectFileButton_Click(sender As Object, e As EventArgs) Handles SelectFileButton.Click

        ' Show the Open File dialog. If the user clicks OK, load the
        ' picture that the user chose.

        Dim ofd As New OpenFileDialog
        If ofd.ShowDialog = DialogResult.OK Then
            If ofd.FileName <> String.Empty Then
                PictureBox1.Image = Bitmap.FromFile(ofd.FileName)
            End If
        End If

    End Sub

NotPolitcallyCorrect

"Я новичок в VB", то вы должны ознакомиться с чтением документации для элементов управления/классов, которые вы используете. https://msdn.microsoft.com/en-us/library/system.windows.forms.filedialog.имена файлов (v=vs. 110). aspx

Garth J Lancaster

Я предполагаю, что если вы используете "OpenFileDialog", то используете проект на основе Winforms ? . вы не думали о том, чтобы, возможно, отображать изображения в ListView или DataGridView ?

Ralf Meier

Путь, по которому я бы пошел, был бы (как предложил Гарт) :
- создайте список, содержащий имена файлов выбранных изображений
- чтобы заполнить этот список, вы можете создать свой собственный диалог
- возможно, вы хотите, чтобы наконец все это было сделано (более или менее) автоматически, вы могли бы создать свой собственный элемент управления, который способен отображать этот список (и, возможно, прокручивать его)

Но путь зависит от вас, чтобы решить, как идти и как далеко идти.
Я думаю, что этот вопрос очень велик, чтобы решить его в один шаг ...

Member 13032047

Что интересно, я этим и занимался! Однако знакомство с элементами управления и многочисленными веб-страницами, учебными пособиями и т. Д. Не дало ничего, кроме средства просмотра изображений, которое просматривает одно изображение за раз (что и делает pb), средства просмотра изображений, который просматривает несколько изображений, нажимая кнопку , загрузка изображений с помощью элемента управления ImageList и т. д. Если вы прочтете не только «Я новичок в VB» (например, не ветеран с 30-летним стажем!), вы можете обнаружить, что проблема не в элементах управления! Что меня интересует, так это отображение более одного случайного изображения из файла, выбранного пользователем, одновременно в нескольких pb. Проблема заключается в кодировании для отображения случайно выбранных изображений из файла, каждое в своем собственном отдельном графическом блоке! Я также успешно выполнил руководство по динамической генерации pb на панели и отображению разных изображений в каждом из ImageList, однако все изображения не в фокусе! Гораздо разумнее услышать вопрос, прежде чем пытаться на него ответить! Я мог бы напомнить вам коробку внизу страницы, которая гласит:

При ответе на вопрос пожалуйста:
1. Внимательно прочитайте вопрос.
2. поймите, что английский не является родным языком для всех, поэтому будьте снисходительны к плохой орфографии и грамматике.
3. Если вопрос плохо сформулирован, то либо попросите разъяснений, проигнорируйте его, либо отредактируйте вопрос и исправьте проблему. Оскорбления не приветствуются!

Давайте работать, чтобы помочь разработчикам, а не заставлять их чувствовать себя глупо.

Member 13032047

Привет, Гарт, да, я использую OFD и Winforms. Нет, я действительно думал о ListView, но продолжал идти по идее Panel/PictureBox, потому что похоже на то, о чем все говорят в учебниках/статьях и т. д. Я не думал о DataGridView и предполагал, что он будет использовать БД в качестве источника данных для изображений? Панель хорошо работает для прокрутки изображений, поскольку она автоматически создает полосы прокрутки, когда изображение / изображения больше области отображения. Кроме того, коробки с картинками, кажется, широко используются? Я еще раз взгляну на ListView! Спасибо за вашу помощь!

Member 13032047

Спасибо, Ральф, если я правильно вас понял, я создаю диалог, который может быть заполнен в виде списка (пользователем?), а затем использую прокручиваемый список для отображения изображений (ListBox?)? Объект ImageList достигает этого, но только предварительно выбранные изображения во время разработки? Можно ли запрограммировать этот список так, чтобы пользователь мог выбирать изображения/фотографии через OpenFileDialog, автоматически заполнять список случайными выбранными пользователем изображениями, а затем открывать несколько изображений в отдельных PB?

Garth J Lancaster

"и предположим, что в качестве источника данных для изображений будет использоваться БД?".. конечно, вы можете, но вам не нужно этого делать - вы можете настроить все это программно... как насчет 'золотую середину', ОФД -&ГТ; DataTable или элемента управления ListView, привязать DataTable для элемента управления ListView или datagridview

Ваш вопрос, очевидно, не является "скучным" нормальным материалом - возможно, вам придется поиграть с несколькими элементами управления/техниками, пока вы не найдете что-то, что соответствует вашим требованиям

Ralf Meier

Привет,
во-первых: я снова согласен с Гартом-это непростой проект, и он требует много энергии (первично поставляемой вами).

Мое предложение основано на том, как я его реализую - и он будет работать не только во время разработки, но и во время выполнения, - это зависит только от того, как вы его создаете и используете ...
Все, что вы видели где-либо, также может быть построено вами (если вы хотите это сделать).

0 Ответов