View Full Version : سوال: نمایش عکس در دیتاگرید ویو
hadi-z
جمعه 12 مهر 1392, 01:00 صبح
سلام
من یک تیبل دارم که توش آدرس عکس هر شخص (روی هارد) در رکورد ها ثبت شده.
بعد یه ستون از نوع DataGridViewImageColumn ایجاد کردم (PersonImage) و ستون آدرس رو غیر قابل نمایش کردم
ولی وقتی از کد زیر برای نمایش تصویر توی سلول های دیتاگرید استفاده میکنم هیچ عکسی نیست.
foreach (DataGridViewRow row in dataGridView1.Rows)
{
((DataGridViewImageCell)row.Cells["PersonImage"]).Value = System.Drawing.Image.FromFile(row.Cells["ImageAddress"].Value.ToString());
}
چه کنم؟
Mahmoud.Afrad
جمعه 12 مهر 1392, 01:48 صبح
عکس رو به آرایه ای از بایت ها تبدیل کن و نسبت بده به value سلول:
if (row.Cells["ImageAddress"].Value != null)
{
byte[] b = File.ReadAllBytes(row.Cells["ImageAddress"].Value.ToString());
row.Cells["PersonImage"].Value = b;
}
hadi-z
جمعه 12 مهر 1392, 09:40 صبح
عکس رو به آرایه ای از بایت ها تبدیل کن و نسبت بده به value سلول:
if (row.Cells["ImageAddress"].Value != null)
{
byte[] b = File.ReadAllBytes(row.Cells["ImageAddress"].Value.ToString());
row.Cells["PersonImage"].Value = b;
}
ممنون از راهنماییتون
ولی کار نکرد!!!!
فقط تو یه حالت کار میکنه
اونم با کد زیر:
foreach (DataGridViewRow row in dataGridView1.Rows)
{
PictureBox pb = new PictureBox();
pb.ImageLocation = row.Cells["ImageAddress"].Value.ToString();
try
{
((DataGridViewImageColumn)row.Cells["PersonImage"].OwningColumn).Image = System.Drawing.Image.FromFile(pb.ImageLocation);
}
catch
{ }
}
که مشکل اینم اینه که تمام سلول های عکس موجود در ستون تصویر رو با یک عکس مشابه پر میکنه
shahryari
جمعه 12 مهر 1392, 11:44 صبح
اینو تست
Bitmap bt = new Bitmap(row.Cells["ImageAddress"].Value.ToString());
(DataGridViewImageColumn)row.Cells["PersonImage"].value = bt;
hadi-z
جمعه 12 مهر 1392, 12:49 عصر
اینو تست
Bitmap bt = new Bitmap(row.Cells["ImageAddress"].Value.ToString());
(DataGridViewImageColumn)row.Cells["PersonImage"].value = bt;
این پیغام رو موقع دیباگ میده:
Error 2 'System.Windows.Forms.DataGridViewCell' does not contain a definition for 'value' and no extension method 'value' accepting a first argument of type 'System.Windows.Forms.DataGridViewCell' could be found (are you missing a using directive or an assembly reference?) C:\Users\Hadi\Documents\Visual Studio 2010\Projects\G\Form1.cs 184 57 G
hadi-z
جمعه 12 مهر 1392, 14:47 عصر
یعنی راه حلی وجود نداره؟؟؟؟
shahryari
جمعه 12 مهر 1392, 17:20 عصر
سلام
value اولش را با حرف بزرگ بنویس Value
Bitmap bt = new Bitmap(row.Cells["ImageAddress"].Value.ToString());
(DataGridViewImageColumn)row.Cells["PersonImage"].Value = bt;
FastCode
جمعه 12 مهر 1392, 17:24 عصر
کدی که برای پر کردن Grid استفاده کردید رو بزارید.
Mahmoud.Afrad
جمعه 12 مهر 1392, 17:44 عصر
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (row.Cells["ImageAddress"].Value != null)
{
row.Cells["PersonImage"].Value = Image.FromFile(row.Cells["ImageAddress"].Value.ToString());
}
}
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.