PDA

View Full Version : سوال: مشکل با گرفتن تصویر از OpenFileDialog



Saman Ice
دوشنبه 18 اردیبهشت 1391, 20:17 عصر
سلام
من میخوام تصویری رو با OpenFileDialog بگیرم و تو pictureBox نشون بدم.

وقتی به صورت معمولی OpenFileDialog رو میخوام باز کنم خطا میده
وقتی دنبال خطاش تو اینترنت گشتم تونستم این مشکل رو حل کنم
الان OpenFileDialog باز میشه ولی وقتی دستور IF رو مینویسم بازم خطا میده

این دستورات
var thread = new Thread(new ParameterizedThreadStart(param => { openFileDialog1.ShowDialog(); }));
thread.SetApartmentState(ApartmentState.STA);
thread.Start();

openFileDialog1.Filter = "JPEG Files (*.jpeg)|*.jpeg|PNG Files (*.png)|*.png|JPG Files (*.jpg)|*.jpg|GIF Files (*.gif)|*.gif";
openFileDialog1.FileName = "";
openFileDialog1.Title = "انتخاب تصویر";
openFileDialog1.FilterIndex = 3;
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
pictureBox1.Image = new Bitmap(openFileDialog1.FileName);
}
status.Text = "تصویر با موفقیت انتخاب شد.";

اینم تصویری از خطا
86789

دوستان لطفا کمک کنید واسه پروژه میخوام وقتمم کمه

mhsn_Danger
دوشنبه 18 اردیبهشت 1391, 21:51 عصر
بسم الله الرحمن الحیم

سلام

داداش این روشی که انتخاب کردی اشتباهه و کارت رو سخت کردی. شما یه بار به thread میگی که openFiledialog رو باز کنه و یه با هم خودت بازش میکنی و اصلا احتباجی هم به thread نداری!
کد زیر کفایت می کنه:

openFileDialog1.Filter = "JPEG Files (*.jpeg)|*.jpeg|PNG Files (*.png)|*.png|JPG Files (*.jpg)|*.jpg|GIF Files (*.gif)|*.gif";
openFileDialog1.FileName = "";
openFileDialog1.Title = "انتخاب تصویر";
openFileDialog1.FilterIndex = 3;

if (openFileDialog1.ShowDialog() == DialogResult.OK)
{

pictureBox1.Image = new Bitmap(openFileDialog1.FileName);
}
this.Text = "تصویر با موفقیت انتخاب شد.";

Mahmoud.Afrad
دوشنبه 18 اردیبهشت 1391, 21:54 عصر
چرا برای یک همچین کار کوچک و ساده ای از ترد استفاده میکنید؟!

cpppro
دوشنبه 18 اردیبهشت 1391, 22:01 عصر
سلام
چرا از ترد استفاده کردین.الان قسمت ترد رو وقتی غیرفعال کنین برنامه درست کار میکنه.
//var thread = new Thread(new ParameterizedThreadStart(param => { openFileDialog1.ShowDialog(); }));
//thread.SetApartmentState(ApartmentState.STA);
//thread.Start();

openFileDialog1.Filter = "JPEG Files (*.jpeg)|*.jpeg|PNG Files (*.png)|*.png|JPG Files (*.jpg)|*.jpg|GIF Files (*.gif)|*.gif";
openFileDialog1.FileName = "";
openFileDialog1.Title = "انتخاب تصویر";
openFileDialog1.FilterIndex = 3;
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
pictureBox1.Image = new Bitmap(openFileDialog1.FileName);
}

" جواب من دیگه فک کنم اضافه هست و دوستان به درستی راهنمایی کردن "

Saman Ice
دوشنبه 18 اردیبهشت 1391, 22:59 عصر
دوستان ممنون از جوابتون ولی این روشهارو امتحان کردم، بالا هم گفتم به صورت معمولی امتحان کردم خطا داد

الانم باز تصویر همین کدی که اصلاح کردین رو میذارم خودتون خطاشو ببینید

86799

Saman Ice
سه شنبه 19 اردیبهشت 1391, 00:19 صبح
مشکل حل شد!

تو یکی از فرمها از thread استفاده کرده بودم
نمیدونم ربطش به این یکی فرمهام چی بود ولی اون رو برداشتم بقیه هم درست شدن