#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..