Миниатюрный образ, несовместимый в DataGridViewImageColumnC#

Место общения программистов C#
Ответить
Anonymous
 Миниатюрный образ, несовместимый в DataGridViewImageColumn

Сообщение Anonymous »

У меня есть куча файлов PDF, я хочу показать имена файлов и миниатюр PDF в DataGridView. Код, создающий миниатюры, является решением здесь: извлечь миниатюру для любого файла в Windows. Я думаю, что проблема каким -то образом связана с DataGridViewImageColumn. В качестве теста я загружаю ту же растровую карту в ImageColumn и PictureBox. PictureBox верен, ImageColumn имеет красный X без изображения. Я проверил несколько решений здесь на SO (изображения не загружаются в DataGridView C# - Visual Studio 2022 и все они связаны внутри), но ничто не похоже на точку, и все кажется таким же, как и то, что я делаю. < /P>
public DataGridViewImage(string path)
{
InitializeComponent();

DataTable table = new DataTable();
table.Columns.Add("path");
DataRow row = table.NewRow();
row["path"] = path;
table.Rows.Add(row);

dataGridView1.DataSource = table;
}
private void dataGridView1_DataSourceChanged(object sender, EventArgs e)
{
foreach (DataGridViewRow row in dataGridView1.Rows)
{
string path = row.Cells["pathCol"].Value.ToString();

int THUMB_SIZE = 256;
Bitmap thumbnail = WindowsThumbnailProvider.GetThumbnail(
path, THUMB_SIZE, THUMB_SIZE, ThumbnailOptions.None);
(row.Cells["imageCol"] as DataGridViewImageCell).Value = thumbnail;

pictureBox1.Image = thumbnail;
}
}


Одна итатрация этого примера имела код в настоящее время в конструкции в ручной нагрузке, что версия, в которой есть всякая почина, в какой -либо причине. public DataGridViewImage()
{
InitializeComponent();
}
private void DataGridViewImage_Load(object sender, EventArgs e)
{
string path = @"F:\sample.pdf";

DataTable table = new DataTable();
table.Columns.Add("path");
DataRow row = table.NewRow();
row["path"] = path;
table.Rows.Add(row);

dataGridView1.DataSource = table;
}


Очевидно, я не могу жестко кодировать фактический проект и не положить приступ в событии нагрузки. Может ли кто -нибудь дать некоторое представление о том, что здесь происходит? Я сохранил одну из миниатюр в качестве JPEG, а затем изменил свой код, чтобы полностью удалить класс ThumbnailGenerator. DataGridView по -прежнему не показывает изображение. Результаты этого кода точно такие же, как первое изображение выше. < /P>
private void dataGridView1_DataSourceChanged(object sender, EventArgs e)
{
foreach (DataGridViewRow row in dataGridView1.Rows)
{
OpenFileDialog dialog = new OpenFileDialog();
if (dialog.ShowDialog() == DialogResult.OK)
{
Bitmap displayImg = new Bitmap(dialog.FileName);
(row.Cells["imageCol"] as DataGridViewImageCell).Value = displayImg;
pictureBox1.Image = displayImg;
}

}
}


Подробнее здесь: https://stackoverflow.com/questions/796 ... magecolumn
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»