Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как загрузить картинку в PictureBox на VB из поля типа Image / 9 сообщений из 9, страница 1 из 1
09.05.2016, 14:09
    #39231789
GROM17
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как загрузить картинку в PictureBox на VB из поля типа Image
Поздравляю всех с Днем Победы!
Подскажите, пожалуйста, как загрузить картинку в PictureBox на VB из поля типа Image таблицы базы данных.

Основные советы сводятся к использованию функции LoadPicture, но она у меня (на VS 2015) не определена. Может быть нужно добавить какую-то ссылку в проект, чтобы ее определить.

Может быть можно воспользоваться ClipBoard, но такая последовательность не проходит:

My.Computer.Clipboard.SetImage(rstEmployees.Fields.Item("Photo").Value)
PictureBox1.Image = My.Computer.Clipboard.GetImage()

В первом операторе происходит ошибка преобразования типов
System.Byte[] к System.Drawing.Image

Заранее благодарю.
...
Рейтинг: 0 / 0
10.05.2016, 09:51
    #39232108
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как загрузить картинку в PictureBox на VB из поля типа Image
Назначьте для PictureBox источник в виде поля таблицы Image.
...
Рейтинг: 0 / 0
11.05.2016, 15:24
    #39233477
GROM17
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как загрузить картинку в PictureBox на VB из поля типа Image
Cat2,
Спасибо, мне это приходило в голову.
На VS 2015 для PictureBox нет такого свойства (DataSource).
...
Рейтинг: 0 / 0
12.05.2016, 08:55
    #39233952
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как загрузить картинку в PictureBox на VB из поля типа Image
GROM17,

DataSource у контролов которые разного рода списки показывают.
У тех, которые показывают одно значение - DataBinding.

Вот кусок кода, который сгенерила студия:

Код: c#
1.
this.pictureBox.DataBindings.Add(new System.Windows.Forms.Binding("Image", this.questionBindingSource, "Img", true));
...
Рейтинг: 0 / 0
12.05.2016, 16:24
    #39234462
GROM17
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как загрузить картинку в PictureBox на VB из поля типа Image
Cat2,
спасибо за подсказку.
Осталось только создать привязку к полю типа "Image" таблицы.
...
Рейтинг: 0 / 0
12.05.2016, 19:29
    #39234642
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как загрузить картинку в PictureBox на VB из поля типа Image
GROM17Осталось только создать привязку к полю типа "Image" таблицы.
Вы сможете!
На самом деле это очень просто.
Главное понять парадигму привязки.

Есть какие-то данные, есть контрол, который их должен изображать.
Контрол должен иметь какой-то источник данных, если это не поля для ввода логина и пароля.
Ведь мы не хотим чтобы все любовно введенные данные пропадали навсегда после закрытия программы?

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

Некоторые из данных могут быть привязаны к значению контрола напрямую. И не только к значения. Могут к его свойству. Типа если шрифт формы Вердана, то и шрифт лейбла тоже должен быть Вердана.


Поэтому Микрософт нагло уперла идею промежуточного звена у кого-то. Ведь не могли тупые микрософтовцы это сами придумать?

Это промежуточное звено называется BindingSource.

Сначала строим для источника данных, потом привязываем его к контролу.
У BindingSource два смешных свойства. DataSource и DataMember. Как его зовут и кто из него нам нужен.

Причем если зовут его по папе Массив Одномерный, то DataMember можно не вспоминать. Глупо же искать различия между близнецами?

DataSource - это объект. DataMember - имя кого-то из семьи из этого объекта.

Итак, сначала строим свое BindingSource, а потом привязываем к нему контрол. Обычно все делается мышкой.

Код: c#
1.
this.pictureBox.DataBindings.Add(new System.Windows.Forms.Binding("Image", this.questionBindingSource, "Img", true));




"Image" - свойство которое мы хотим отображать у PictureBox.

this.questionBindingSource - BindingSource, который построен к DataTable из Dataset.

"Img" - имя поля в таблице
...
Рейтинг: 0 / 0
12.05.2016, 20:16
    #39234659
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как загрузить картинку в PictureBox на VB из поля типа Image
Cat2,авторВы сможете! вы прям как Кашпировский, у меня на клаве уже будильник включился)
http://www.saramgsilva.com/index.php/2013/c-how-to-convert-byte-to-bitmap/
...
Рейтинг: 0 / 0
13.05.2016, 17:25
    #39235452
GROM17
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как загрузить картинку в PictureBox на VB из поля типа Image
Cat2,
большое спасибо, за подробное объяснение.

Это - ссылка на документацию:
https://msdn.microsoft.com/ru-ru/library/system.windows.forms.control.databindings(v=vs.110).aspx

В моем случае:
Dim DS = New dsEmployees
TextBox1.DataBindings.Add _
(New Binding("Text", DS, "Employees.LastName", True))

При выполнении выдает сообщение:
...
Рейтинг: 0 / 0
13.05.2016, 18:50
    #39235513
GROM17
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как загрузить картинку в PictureBox на VB из поля типа Image
Cat2,
большое спасибо. Я во всем разобрался.
На мое предыдущее сообщение не обращайте внимания.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как загрузить картинку в PictureBox на VB из поля типа Image / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]