C # — Щелкните внутри DataGridView для увеличения изображения

#c# #datagridview

#c# #datagridview

Вопрос:

У меня есть DataGridView, заполненный данными из базы данных MS SQL. Данные также содержат изображения с небольшими размерами (140×195). Есть ли какой-нибудь способ щелкнуть по изображению и открыть увеличенное изображение?

Изображение здесь

Комментарии:

1. Конечно. Используйте CellClick событие; посмотрите на его параметры и проверьте, является ли e.ColumnIndex правильным. Вам нужно будет знать, как найти изображение большего размера из e.RowIndex, а затем отобразить его, например, в PictureBox, который вы можете, например, поместить в положение курсора и скрыть, когда он больше не нужен, или в форме, которую вы можете позволить пользователю закрыть .. Все довольно просто, как только вызнайте, чего вы хотите.

2. Спасибо за вашу помощь, TaW! Пожалуйста, смотрите мой ответ ниже.

Ответ №1:

Я использую следующий код, чтобы показать изображение в PictureBox.

         private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
    {
        dataGridView1.CurrentRow.Selected = true;
        int cardNo = Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells["Number"].FormattedValue);
        con.Open();
        SqlCommand cmd = new SqlCommand("SELECT ImageFull FROM SS4 WHERE CardNo = '"   cardNo "'", con);
        string img = cmd.ExecuteScalar().ToString();
        pbCard.Image = Image.FromFile(img);
        con.Close();
    }
  

Путь к изображению сохраняется в базе данных.
Я не могу найти способ показать изображение в новой форме вместо PictureBox.

Комментарии:

1. Рад помочь! — Вы могли бы избежать дополнительного перехода к БД, выбрав пути в столбец, который вы скрываете. Вы можете создать новую форму большого размера с помощью Picturebox и сделать ее Dock=Fill и pbox SizeMode= Zoom . Вы можете открыть его в начале, сохранить ссылку под рукой, скрыть ее до тех пор, пока она не понадобится; в случае закрытия записи; private void Form2_FormClosing(object sender, FormClosingEventArgs e) { Hide(); if (e.CloseReason != CloseReason.UserClosing) e.Cancel = true; } — Установите изображение в щелчок и снова покажите Form2..