PDA

View Full Version : سوال: حذف عکس موجود در پیکچر باکس



تبسم ساینا
یک شنبه 20 مرداد 1392, 20:50 عصر
سلام دوستان
من تووی برنامه مم یه گرید ویوو دارم که کدی نوشتم براش که وقتی کاربر روی هر سطر گرید ویوو کلیک می کنه متانسب با کد سطر انتخابی عکسی رو در picturebox نشون میده. حالا من میخوام همین طور که روی سطر کلیک کرد,بتونه سطر رو حذف کنه و به دنبال اون عکس مربوطه هم که در مسیر پروژه هست حذف بشه ولی مشکلم اینجاست که چون عکس مورد نظر در پیکچر باکس قرار داره موقع حذف عکس پیغام خطا میده..
چه راه حلی پیشنهاد میکنید که بتونم عکس رو در پیکچر باکس نشون بدم ولی در عین حال هم بتونم حذفش کنم ؟

gilas1368
یک شنبه 20 مرداد 1392, 21:09 عصر
فک میکنم با این بتونید picturebox رو خالی کنید


Graphics g = graphics.fromimage(pictureBox1.Image);
g.Clear(pictureBox1.Image);

بعد هم عکس رو از پوشه برنامه حذف کنید

khokhan
یک شنبه 20 مرداد 1392, 21:13 عصر
سلام دوستان
من تووی برنامه مم یه گرید ویوو دارم که کدی نوشتم براش که وقتی کاربر روی هر سطر گرید ویوو کلیک می کنه متانسب با کد سطر انتخابی عکسی رو در picturebox نشون میده. حالا من میخوام همین طور که روی سطر کلیک کرد,بتونه سطر رو حذف کنه و به دنبال اون عکس مربوطه هم که در مسیر پروژه هست حذف بشه ولی مشکلم اینجاست که چون عکس مورد نظر در پیکچر باکس قرار داره موقع حذف عکس پیغام خطا میده..
چه راه حلی پیشنهاد میکنید که بتونم عکس رو در پیکچر باکس نشون بدم ولی در عین حال هم بتونم حذفش کنم ؟
توی پروپرتی پروژه در قسمت resources یه عکس می گذاری
بعد اون عکس رو به عنوان پیش فرض برای پیکچر باکس تعریف می کنی اینطوری :

private Image picimage = Properties.Resources.court_gowdel;
حالا تعریف می کنی که هر وقت تصویری به پیکچر باکس بایند شد اونو نشون بده و هر وقت تصویر رو حذف کردی یا به هردلیلی خواستی پیکچر باکس خالی بشه بلافاصله عکس پیش فرض نشون داده بشه

else
{
picimage = Properties.Resources.court_gowdel;
pictureBox1.Image = picimage;
}

bazardeh
یک شنبه 20 مرداد 1392, 21:14 عصر
راههای مختلفی می تونی استفاد کنی
البته راهنمایی دوستون در بالا کاملتر و بهتره
می تونی تو رویداد ماوس لیو دیتا گرید ویوو ، بنویسی که یک عکس پیش فرض را لود کنه همین :چشمک:

تبسم ساینا
یک شنبه 20 مرداد 1392, 21:34 عصر
فک میکنم با این بتونید picturebox رو خالی کنید


Graphics g = graphics.fromimage(pictureBox1.Image);
g.Clear(pictureBox1.Image);

بعد هم عکس رو از پوشه برنامه حذف کنید



توی پروپرتی پروژه در قسمت resources یه عکس می گذاری
بعد اون عکس رو به عنوان پیش فرض برای پیکچر باکس تعریف می کنی اینطوری :

private Image picimage = Properties.Resources.court_gowdel;
حالا تعریف می کنی که هر وقت تصویری به پیکچر باکس بایند شد اونو نشون بده و هر وقت تصویر رو حذف کردی یا به هردلیلی خواستی پیکچر باکس خالی بشه بلافاصله عکس پیش فرض نشون داده بشه

else
{
picimage = Properties.Resources.court_gowdel;
pictureBox1.Image = picimage;
}


راههای مختلفی می تونی استفاد کنی
البته راهنمایی دوستون در بالا کاملتر و بهتره
می تونی تو رویداد ماوس لیو دیتا گرید ویوو ، بنویسی که یک عکس پیش فرض را لود کنه همین :چشمک:

ممنونم دوستان ولی هیچ کدوم از اینها نشد
این لینک پروژه س, اگه میشه یه نگاهش کنید ببینید مشکلش ازچیه:
http://s1.picofile.com/file/7889030642/ShiriniFouroshi.rar.html

Mahmoud.Afrad
یک شنبه 20 مرداد 1392, 22:18 عصر
قبل از اقدام به حذف ، شئ Image ای که به پیکچرباکس دادی رو از بین ببر.

if (pictureBox1.Image != null)
pictureBox1.Image.Dispose();

forodo
جمعه 25 مرداد 1392, 14:12 عصر
اگه بخوایم پیکچرباکس به همون حالت اولیه اش برگردد چطوریه؟
یعنی می خوام مثلاً وقتی دکمه ای رو کلیک کردم عکس داخل پیکچرباکس پاک بشه.

systam
شنبه 26 مرداد 1392, 09:15 صبح
سلام
منم به همین مشکل برخوردم زمانی مقدار دهی عکس رو به این شکل میدیم :pictureBox1.Image همین مشکل بر میخوریم
ولی اشتباه ما همینه چون عکس در برنامه داره استفاده میشه به هیچ عنوان اجازه حذف عکس رو نمیده با dispose و nothing مشکل برطرف نمیشه
برای مقدار دهی عکس بیاید از خاصیت imagelocaetion عکس استفاده کنید و به راحتی حذف عکس مورد نظر حذف کنید
اینم یک نمونه مثال البته رو گرید نیست ولی مفهوم رو میرونه (http://barnamenevis.org/showthread.php?412048-%D9%85%D8%B4%DA%A9%D9%84-%D8%AF%D8%B1-%D8%AD%D8%B0%D9%81-%D8%B9%DA%A9%D8%B3-%D9%85%D9%88%D8%B1%D8%AF-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%AF%D8%B1-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87&p=1840260#post1840260)


یا علی