Есть dataGridView, в котором выведена БД. Хочу, чтобы при двойном щелчке по ячейке открывалось изображение, которое хранится как ссылка в ячейке. Имею код:
private void dataGridView1_DoubleClick(object sender, EventArgs e)
{
var link = dataGridView1.SelectedCells;
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
pictureBox1.Image = Image.FromFile(link);
}
Возникает ошибка: Ошибка 2 Аргумент "1": преобразование типа из "System.Windows.Forms.DataGridViewSelectedCellCollection" в "string" невозможно
Подскажите, как правильно написать код.
Попробовал ещё один вартант:
string p = Convert.ToString(dataGridView1[0, dataGridView1.CurrentRow.Index].Value.ToString());
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
pictureBox1.Image = Image.FromFile(p);
Также не работает.
Вместо события двойного клика по всему гриду, следует использовать событие двойного клика по конкретной ячейке.
private void DataGridView_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
{
if (e.ColumnIndex == 1) // индекс колонки с линком
{
var link = dataGridView[e.ColumnIndex, e.RowIndex].Value.ToString();
//pictureBox.Load(link);
//pictureBox.LoadAsync(link);
}
}
Если значение в ячейке является валидным url'ом, его можно просто передать в метод Load пикчабокса (или LoadAsync, если загрузка будет долгой, например, из интернета).
Сборка персонального компьютера от Artline: умный выбор для современных пользователей