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

Отобразить в PictureBox картинку, выбранную в ListBox

01.02.2013, 19:35. Показов 9710. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
как?)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.02.2013, 19:35
Ответы с готовыми решениями:

Отобразить в PictureBox картинку, выбранную в ListBox
Задача такая: есть ListBox, в котором выводится название папок с определенной директории. Вот как работает: Dim Dir() As String =...

В PictureBox отобразить картинку, выбранную в FileListBox
Всем привет! Спустя 5 лет после изучения visual basic решил написать прогу, которая упростила бы мне жизнь на работе! И возникли такие...

Отобразить картинку в PictureBox по клику
подскажите как реализовать код, чтобы при нажатии на ріcturebox , в последнем отображалась нужная мне картинка х, не в функции private...

15
mechanic_94
02.02.2013, 19:09
Может как-то так. Только нужно добавить на форму pictureBox и listBox
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
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            switch (listBox1.Text)
            {
                case "1": im = Image.FromFile("1.bmp");
                    pictureBox1.Image = im;
                    pictureBox1.AutoSize = true;
                    break;
                case "2": im = Image.FromFile("2.bmp");
                    pictureBox1.Image = im;
                    pictureBox1.AutoSize = true;
                    break;
                case "3": im = Image.FromFile("3.bmp");
                    pictureBox1.Image = im;
                    pictureBox1.AutoSize = true;
                    break;
                case "4": im = Image.FromFile("4.bmp");
                    pictureBox1.Image = im;
                    pictureBox1.AutoSize = true;
                    break;
                default: break;
 
                    
            }
        }
Темная сторона .Net
 Аватар для Noob.net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
03.02.2013, 01:10
mechanic_94, а теперь выведите в список первые 30 изображений,пожалуйста
0
-19 / 1 / 2
Регистрация: 05.11.2012
Сообщений: 48
03.02.2013, 12:45
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
35
36
37
38
39
40
41
42
43
44
using System;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        /// <summary>
        /// процедура может быть любая, нам нужно только получить имя файла
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            pictureBox1.Image = LoadImg((sender as ComboBox).Text + ".bmp");
        }
 
        /// <summary>
        /// Загрузка картинки
        /// если файл отстствует то возвращаем пустую картинку размеров в 1 пиксель
        /// </summary>
        /// <param name="p">путь к файлу</param>
        /// <returns>загруженная картинка</returns>
        private Image LoadImg(string p)
        {
            // делаем по умолчанию пустую картинку
            Image res = new Bitmap(1,1);
            // если файл существует
            if (File.Exists(p))
            {
                // то загружаем из него картинку
                res = Image.FromFile(p);
            }
            return res;
        }
    }
}
Добавлено через 2 минуты
или лучше даже так
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        /// <summary>
        /// Загрузка картинки
        /// если файл отстствует то возвращаем пустую картинку размеров в 1 пиксель
        /// </summary>
        /// <param name="p">путь к файлу</param>
        /// <returns>загруженная картинка</returns>
        private Image LoadImg(string p)
        {
            // если файл существует
            if (File.Exists(p))
                // то загружаем из него картинку
                return Image.FromFile(p);
            else
                // или возвращаем пустую картинку в 1 пиксель
                return new Bitmap(1,1);
        }
0
Темная сторона .Net
 Аватар для Noob.net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
03.02.2013, 12:52
finflaex, Можно вопрос?
C#
1
2
3
4
5
6
7
8
9
10
//Зачем 
// делаем по умолчанию пустую картинку
Image res = new Bitmap(1,1);
//а потом перебивать ссылку и оставить старую картинку одинокой в тьме?
return Image.FromFile(p);
//а если картинки нету так вернуть другую 1х1? 0_о
// или возвращаем пустую картинку в 1 пиксель
 return new Bitmap(1,1);
//почему не 
return res; // ту 1х1 которую создали сначала.
0
-19 / 1 / 2
Регистрация: 05.11.2012
Сообщений: 48
03.02.2013, 13:31
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// делай как те нравится
// это просто мой переписанный исходник для твоего примера
Image res = null;
//а потом перебивать ссылку и оставить старую картинку одинокой в тьме?
//потому что, если не перебить использование первой ссылки вызывает глюки
// особенно если картинка обновляется с фпс от 20 и выше
return Image.FromFile(p);
//а если картинки нету так вернуть другую 1х1? 0_о
return new Bitmap(1,1);
// или возвращаем просто нулевую ссылку
return null;
//почему не 
return res; // ту 1х1 которую создали сначала.
// потому что в последнем варианте его нет
0
Темная сторона .Net
 Аватар для Noob.net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
03.02.2013, 13:41
Цитата Сообщение от finflaex Посмотреть сообщение
потому что, если не перебить использование первой ссылки вызывает глюки
особенно если картинка обновляется с фпс от 20 и выше
Для этого есть разные методы прорисовки\обновления. (Control.SetStyle Method)
Не видел глюков которые не можно исправить упростив или немножко усложнив код.

P.s. я не придираюсь,исправить код немножко захотелось
0
-19 / 1 / 2
Регистрация: 05.11.2012
Сообщений: 48
03.02.2013, 13:53
ну это в прорисовку надо лезть, а если изображение не присваивать каком либо элементу а обрабатывать его в памяти?
Да для этого еще библиотеку лишнюю грузить, этот метод универсален, ваш же направлен на прорисовку интерфейса.
0
Темная сторона .Net
 Аватар для Noob.net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
03.02.2013, 13:53
Цитата Сообщение от finflaex Посмотреть сообщение
Да для этого еще библиотеку лишнюю грузить,
в приложении WinForm грузить лишнюю библиотеку Windows.Forms. Это да.

Цитата Сообщение от finflaex Посмотреть сообщение
а если изображение не присваивать каком либо элементу а обрабатывать его в памяти?
Я же и спросил потому что вместо 2-ух объектов или 1-ого у вас было 3. К чему здесь еще споры о памяти?

Цитата Сообщение от finflaex Посмотреть сообщение
этот метод универсален
Объясните в чем его универсальность и я соглашусь с вами.
0
-19 / 1 / 2
Регистрация: 05.11.2012
Сообщений: 48
03.02.2013, 14:00
Цитата Сообщение от finflaex Посмотреть сообщение
C#
1
2
//потому что, если не перебить использование первой ссылки вызывает глюки
// особенно если картинка обновляется с фпс от 20 и выше
ты работаешь двумя или более процессами с одним объектом, естественно при обновлении картинки одним процессом, доступ второго вызовет какоенить исключение

Добавлено через 4 минуты
C#
1
2
3
4
5
6
7
8
9
10
11
        private Image LoadImg(string p)
        {
            // если файл существует
            if (File.Exists(p))
                // то загружаем из него картинку
                return Image.FromFile(p);
                // если не существует
            else
                // то возвращаем пустую картинку
                return new Bitmap(1,1);
        }
какие 3 объекта )))

Добавлено через 2 минуты
Цитата Сообщение от Noob.net Посмотреть сообщение
в приложении WinForm грузить лишнюю библиотеку Windows.Forms. Это да.
у меня библиотека, которая обрабатывает память в фоновом процессе
Цитата Сообщение от Noob.net Посмотреть сообщение
Объясните в чем его универсальность и я соглашусь с вами.
Цитата Сообщение от finflaex Посмотреть сообщение
а если изображение не присваивать каком либо элементу а обрабатывать его в памяти?
0
Темная сторона .Net
 Аватар для Noob.net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
03.02.2013, 14:03
finflaex, какое-то исключения какого то процесса.. о каких процессах вы говорите?

Цитата Сообщение от finflaex Посмотреть сообщение
с одним объектом
с каким? у вас их 3 было. Так что б я ссылки не потерял объясните.
0
-19 / 1 / 2
Регистрация: 05.11.2012
Сообщений: 48
03.02.2013, 14:04
http://msdn.microsoft.com/ru-r... tyles.aspx здесь русская версия вашей ссылки, и там русскими словами написано что работает только с элементами управления
HTML5
1
Элементы управления используют это перечисление в различных свойствах и методах для определения возможности
0
Темная сторона .Net
 Аватар для Noob.net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
03.02.2013, 14:04
Цитата Сообщение от finflaex Посмотреть сообщение
у меня библиотека,
вы же говорили я работаю с 2-мя процессами,а теперь о вашей библиотеке.
0
-19 / 1 / 2
Регистрация: 05.11.2012
Сообщений: 48
03.02.2013, 14:10
C#
1
2
3
4
5
6
7
8
9
10
11
        private Bitmap LoadImg(string p)
* * * * {
* * * * * * // если файл существует
* * * * * * if (File.Exists(p))
* * * * * * * * // то загружаем из него картинку
* * * * * * * * return new Bitmap(Image.FromFile(p));
* * * * * * * * // если не существует
* * * * * * else
* * * * * * * * // то возвращаем пустую картинку
* * * * * * * * return null;
* * * * }
вот вам универсальные метод, позволяющий загружать пиксельную матрицу в память
0
Темная сторона .Net
 Аватар для Noob.net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
03.02.2013, 14:13
finflaex,
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
Image res = new Bitmap(1,1); //1 объект
if(true)//есть картинка
return Image.FromFile(p); //2 второй,тогда первый вообще не нужен
else
return new Bitmap(1,1); //3-ий.

Я спросил,вы исправили,молодец.
Какие глюки вызывает такой код?
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
if(true)
return Image.FromFile(p); 
else
 return new Bitmap(1,1); //вы сказали нужно "перебить" ссылку ибо будут глюки
//ибо я работаю с 2-мя процессами и нужно грузить доп.библиотеку. Какую длл,какие процесы
//здесь 3 строчки кода

У ТС нету вашей библиотеки,зачем ее сюда впутывать?

private Bitmap - мы и так возвращаем объект из памяти.
Я говорил о перерисовке при "каких то глюках",о каких говорили вы,но я так и не понял какие.

Не по теме:

Бесполезный спор. Прекращаю.

0
-19 / 1 / 2
Регистрация: 05.11.2012
Сообщений: 48
03.02.2013, 16:05
Цитата Сообщение от Noob.net Посмотреть сообщение
с каким? у вас их 3 было. Так что б я ссылки не потерял объясните.

C#
1
2
3
4
5
6
7
8
9
10
11
private Bitmap LoadImg(string p)
{
// если файл существует
if (File.Exists(p))
// то загружаем из него картинку
return new Bitmap(Image.FromFile(p));
// если не существует
else
 // то возвращаем пустую картинку
 return null;
}
где 3 то??? либо то либо се только с 1м )))

Добавлено через 5 минут
Цитата Сообщение от Noob.net Посмотреть сообщение
Я говорил о перерисовке при "каких то глюках",о каких говорили вы,но я так и не понял какие.
Цитата Сообщение от finflaex Посмотреть сообщение
//потому что, если не перебить использование первой ссылки вызывает глюки
// особенно если картинка обновляется с фпс от 20 и выше
допустим создаем часть изображения из другой картинки в памяти
передаем ссылку для отображения на интерфейс
затем передаем эту же ссылку для какойнить манипуляции с пикселами
в итоге при втором действии выскакивает ошибка,
для этого я и взял в привычку всякий раз создавать новую ссылку, весит не много но от многих глюков спасает

Добавлено через 1 минуту
в приведенном выше примере с одним объектом работают два процесса, отрисовка на форме и работа в памяти

Добавлено через 1 минуту
Цитата Сообщение от Noob.net Посмотреть сообщение
Я спросил,вы исправили,молодец.
прочитайте исправление первого коммента по времени, оно гораздо раньше вашего домагательства до болтоголии

Добавлено через 1 минуту
Цитата Сообщение от Noob.net Посмотреть сообщение
return new Bitmap(1,1); //вы сказали нужно "перебить" ссылку ибо будут глюки
//ибо я работаю с 2-мя процессами и нужно грузить доп.библиотеку. Какую длл,какие процесы
//здесь 3 строчки кода
вы свой коммент прибили к произвольному участку кода, и начали разгонять

Добавлено через 1 час 42 минуты
Цитата Сообщение от finflaex Посмотреть сообщение
// если файл существует
if (File.Exists(p))
return new Bitmap(Image.FromFile(p));
else
return null;
да и строчки 4
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.02.2013, 16:05
Помогаю со студенческими работами здесь

Выбранную запись ToolStripComboBox1 отобразить в ToolStripTextBox3
Всем привет! Как Выбранную запись ToolStripComboBox1 отобразить в ToolStripTextBox3? пробывал вот так: Private Sub...

Отобразить выбранную строку combobox в DataGridView
Доброго времени суток! Такой вопрос: как, при выборе строки в combobox, отобразить соответствующую таблицу из локальной базы данных в...

Как отобразить выбранную с помощью ComboBox таблицу?
Добрый день! У меня в базе 5 таблиц. Нужно отобразить в DBGrid таблицу, которая выбрана в ComboBox. В дальнейшем предполагаю добавить в...

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

Загрузить в Image выбранную картинку в ListView
Народ, помогите пожалуйта. Не могу заставить Image отображать выбранную в ListView картинку. Image и ListView находяться в...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru