Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Image / 7 сообщений из 7, страница 1 из 1
18.05.2004, 12:49
    #32521962
chess
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Image
Добрый день!
Помогите в решении следующей проблеммы.
Имеется dataSet в которой один из столбцов Imag. В этом столбце храниться ссылка на рисунок (C:\foto.jpeg).
На форме имеется pictureBox1. Как сделать так, что бы при навигации по dataset (в pictureBox1 отображался рисунок соответствующему данному пути выбранной строки??
...
Рейтинг: 0 / 0
18.05.2004, 13:29
    #32522082
Артем1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Image
1. Подписаться на событие, происходящее при изменении текущей строки в DataView.
2. В обработчике этого события извлекать путь к картинке из поля датасета и загружать картинку в пикчабокс.

Конкретно код надо смотреть в МСДН, на вскидку не помню. Думаю, без проблем найдете.
...
Рейтинг: 0 / 0
18.05.2004, 13:32
    #32522089
Артем1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Image
Так загружать картинку.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
[C#] 
private Bitmap MyImage ;
public void ShowMyImage(String fileToDisplay, int xSize, int ySize)
{
   // Sets up an image object to be displayed.
   if (MyImage != null)
   {
      MyImage.Dispose();
   }

   // Stretches the image to fit the pictureBox.
   pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage ;
   MyImage = new Bitmap(fileToDisplay);
   pictureBox1.ClientSize = new Size(xSize, ySize);
   pictureBox1.Image = (Image) MyImage ;
}
...
Рейтинг: 0 / 0
18.05.2004, 13:46
    #32522136
Артем1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Image
По 1-му пункту неверно. Событие об изменении текущей строки надо брать у CurrencyManager (ex, PositionChanged)
...
Рейтинг: 0 / 0
18.05.2004, 14:09
    #32522225
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Image
>По 1-му пункту неверно. Событие об изменении текущей строки надо брать у CurrencyManager (ex, PositionChanged)

Необязательно, но рекомендуется все делать через CurrencyManager.
...
Рейтинг: 0 / 0
18.05.2004, 16:41
    #32522634
chess
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Image
Только так?
А нельзя как нить через DataBindings?
...
Рейтинг: 0 / 0
19.05.2004, 08:37
    #32523181
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Image
>Только так?
А нельзя как нить через DataBindings?

Ну можно сказать что это через него :-)

Итак утрированный пример:
Пусть у нас в форме есть:
Код: plaintext
1.
private System.Windows.Forms.CurrencyManager m_crm;

Такой код например в load формы:
Код: plaintext
1.
2.
m_crm =  (CurrencyManager)this.BindingContext[this.dataGrid1.DataSource, "mytable"];
m_crm.PositionChanged +=  new EventHandler(myTable_PositionChanged); // подпишимся на событие PositionChanged
где dataGrid1 - используется для навигации по таблице с путями на рисунки, где myTable - имя твоей таблицы

А вот и наш обработчик события
Код: plaintext
1.
2.
3.
4.
5.
6.
private void myTable_PositionChanged(object sender, System.EventArgs e)
{
	DataView dv = (DataView) m_crm.List;
	DataRow row = dv[m_crm.Position].Row;
	this.label1.Text = row[ 0 ].ToString(); // Тут я предположил что строка с путем на рисунок храниться в первом столбце и вывожу этот путь на форму в label1
}
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Image / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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