PDA

View Full Version : تغییر عکس فرم با کد



zhilbert
جمعه 09 بهمن 1388, 01:36 صبح
سلام.من میخواهم یک تصویر رو برای بک گراند فرمم انتخاب کنم ولی این تصویر در Resource هایم نیست و میخواهم اونو از طریق کد و با دادن مسیر تصویر انتخاب کنم.مثلا برای Picturebox مینویسیم PictureBox1.Load(Masir)حالا برای فرم چجوری باید بنویسم .

sari-1369
جمعه 09 بهمن 1388, 01:41 صبح
Me.BackgroundImage = Image.FromFile("مسیر فایل")

ali_ahr7
جمعه 09 بهمن 1388, 20:05 عصر
سلام واقعا ممنون از راهنماييتون.

oggiii
شنبه 10 بهمن 1388, 00:48 صبح
Me.BackgroundImage = Image.FromFile("مسیر فایل")

ممنون خوب بود

از کجا باید فهمید که از این کد استفاده باید بشه ؟؟ Image.FromFile

اگه بخوایم فرممون اندازه عکس بک گراند یا برعکس عکسمون کیپ فرم درباید باید چی کار کنیم ؟؟

و اخرین سئوال لطفا میشه بگید که اگه بخوایم مثلا کاربر اگه برنامه رو بست و دوباره باز کرد باز این عکس نمایش داده بشه باید چی کار کرد ؟؟ اگه باید توی sql ذخیره بشه چطوری ؟؟ در غیر اینصورت چطوری ؟؟

mortezamhd
شنبه 10 بهمن 1388, 04:49 صبح
ممنون خوب بود

از کجا باید فهمید که از این کد استفاده باید بشه ؟؟ Image.FromFile

اگه بخوایم فرممون اندازه عکس بک گراند یا برعکس عکسمون کیپ فرم درباید باید چی کار کنیم ؟؟

و اخرین سئوال لطفا میشه بگید که اگه بخوایم مثلا کاربر اگه برنامه رو بست و دوباره باز کرد باز این عکس نمایش داده بشه باید چی کار کرد ؟؟ اگه باید توی sql ذخیره بشه چطوری ؟؟ در غیر اینصورت چطوری ؟؟
سلام
با اجازه از دوست خوبم Sari1369
برای اینکه عکس هم سایز فرم بشه از Stretch باید استفاده کنید

Me.BackgroundImageLayout=ImageLayout.Stretch

برای اینکه با باز و بسته کردن برنامه عکس نمایش داده شه میتونید از Setting ها استفاده کنید و یا .... (همین Setting رو که یک جست و جو کوچیک بکنی حتما به جواب میرسی)

موفق باشی

oggiii
شنبه 10 بهمن 1388, 13:35 عصر
سلام
با اجازه از دوست خوبم Sari1369
برای اینکه عکس هم سایز فرم بشه از Stretch باید استفاده کنید

Me.BackgroundImageLayout=ImageLayout.Stretch

برای اینکه با باز و بسته کردن برنامه عکس نمایش داده شه میتونید از Setting ها استفاده کنید و یا .... (همین Setting رو که یک جست و جو کوچیک بکنی حتما به جواب میرسی)

موفق باشی

ممنون دوست عزیز
اما من مطلب رو پیدا نکردم میشه اگه شما پیدا کردین لینکشو واسم بزارید ؟
یه سئوال دیگه اگه بخوام توی openfiledialog فقط یه سری پسوند ها رو نمایش بده باید چی کار کنم ؟؟ مثلا .jpg و...

Navid Asadi
شنبه 10 بهمن 1388, 16:18 عصر
تو پست های من دنبال Save Setting بگرد. یک پست کامل در این رابطه هست.

mortezamhd
شنبه 10 بهمن 1388, 23:23 عصر
یه سئوال دیگه اگه بخوام توی openfiledialog فقط یه سری پسوند ها رو نمایش بده باید چی کار کنم ؟؟ مثلا .jpg و...

اكر اشتباه نكنم ‏:
openfiledialog.Filter="(*.Jpg)|*.Jpg"

sari-1369
شنبه 10 بهمن 1388, 23:36 عصر
Dim OpenFile As New OpenFileDialog
OpenFile.Filter = "Image Files|*.BMP;*.JPG;*.GIF;*.tif"

Netsky
شنبه 10 بهمن 1388, 23:49 عصر
و اخرین سئوال لطفا میشه بگید که اگه بخوایم مثلا کاربر اگه برنامه رو بست و دوباره باز کرد باز این عکس نمایش داده بشه باید چی کار کرد ؟؟ اگه باید توی sql ذخیره بشه چطوری ؟؟ در غیر اینصورت چطوری ؟؟
نه نیازی نیست از SQL استفاده کنید . خیلی راحت روش زیر رو انجام بدید .
داخل رویداد Form_Closing اینو بنویسید :



My.Computer.Registry.SetValue("HKEY_CURRENT_USER\My App", "BG Pic", "C:\image1.jpg")

به جای C:\Image1.jpg آدرس مورد نظر خودتون رو جایگزین کنید .
حالا در رویداد Form_Load کد زیر رو قرار بدید و آدرس عکس رو دریافت کنید .



Dim strPath As String
strPath = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\My App", "BG Pic", 0)

Me.BackgroundImage = Image.FromFile(strPath)

اگه بازم مشکلی بود من در خدمتم . :لبخندساده:

oggiii
یک شنبه 11 بهمن 1388, 00:00 صبح
ممنون از همه یه سئوال دارم
من وقتی از openfiledialog استفاده می کنم وقتی روی فایلی کلیک می کنم و اوکی رو میزنم همیچیز درسته ولی وقتی فایلی رو انتخاب می کنم و کنسل رو میزنم برنامه بسته میشه و ارور میده ولی اگه فایل رو انتخاب نکنم و کنسل بزنم درست کار میکنه !! چکار باید کرد !

اینم سورس برنامه

OpenFileDialog1.ShowDialog()
fname = OpenFileDialog1.FileName
PictureBox1.BackgroundImage = Image.FromFile(fname)
PictureBox1.BackgroundImageLayout = ImageLayout.Stretch
Label14.Text = fname

Netsky
یک شنبه 11 بهمن 1388, 00:16 صبح
سلام دوست عزیز .
ببین من مشکل رو رفع کردم . میدونی چی میشه که برنامه پیغام خطا ارسال میکنه ؟؟؟
وقتی که کنسل رو میزنی مقدار fname برابر میشه با OpenFileDialog1 و وقتی که در تابع Image.FromFile قرار میگیره ، تابع رو دچار مشکل ( وجود نداشتن فایل ) میکنه . بنابراین من برنامه رو به صورت زیر تغییر دادم و درست شد :



OpenFileDialog1.ShowDialog()
fname = OpenFileDialog1.FileName
If fname = "OpenFileDialog1" Then
MsgBox("Invalid File", MsgBoxStyle.Critical, "Error")
Else
PictureBox1.BackgroundImage = Image.FromFile(fname)
PictureBox1.BackgroundImageLayout = ImageLayout.Stretch
End If

بازم اگه سوالی داشتی من در خدمتم . :لبخندساده:

oggiii
یک شنبه 11 بهمن 1388, 00:46 صبح
سلام دوست عزیز .
ببین من مشکل رو رفع کردم . میدونی چی میشه که برنامه پیغام خطا ارسال میکنه ؟؟؟
وقتی که کنسل رو میزنی مقدار fname برابر میشه با OpenFileDialog1 و وقتی که در تابع Image.FromFile قرار میگیره ، تابع رو دچار مشکل ( وجود نداشتن فایل ) میکنه . بنابراین من برنامه رو به صورت زیر تغییر دادم و درست شد :



OpenFileDialog1.ShowDialog()
fname = OpenFileDialog1.FileName
If fname = "OpenFileDialog1" Then
MsgBox("Invalid File", MsgBoxStyle.Critical, "Error")
Else
PictureBox1.BackgroundImage = Image.FromFile(fname)
PictureBox1.BackgroundImageLayout = ImageLayout.Stretch
End If

بازم اگه سوالی داشتی من در خدمتم . :لبخندساده:

ممنون درست شد
به نظرمن جای ارور از کد زیر هم میشه استفاده کرد چون من یه عکس گزاشتم که کاربری که عکس نداره اونو نمایش میده اما کد شما هم عالیه ممنون

PictureBox1.Image = BackgroundImage
اگه سئوال داشتم بازم مزاحمت میشم
بازم تشکر

sari-1369
یک شنبه 11 بهمن 1388, 00:55 صبح
وقتی که یک شی رو ShowDialog میکنی ، یک مقدار بازگشتی به عنوان DialogRisolt بر میگردونه که به این صورت میتونی کنترل کنی که کاربر روی چه دکمه ای کلیک کرده .


Dim OpenFile As New OpenFileDialog
OpenFile.Filter = "Image Files|*.BMP;*.JPG;*.GIF;*.tif"
OpenFile.Title = "تصویر مورد نظر خود را انتحاب کنید"
If OpenFile.ShowDialog = Windows.Forms.DialogResult.OK Then
'Dastorate marbote
End If

oggiii
یک شنبه 11 بهمن 1388, 12:42 عصر
حالا میخوام وقتی کاربر عکس رو از هر درایوی که انتخاب میکه یه نسخه از اون عکس کپی بشه توی مثلا "c:\pictures و اگه اسم عکس تکراری بود و توی اون درایو موجود بود خودش یه اسم یا عددی جلوی اسم قبلی اضافه کنه به صورت رندم اگه باز اسم جدید توی c:\pictures وجود نداشت کپیشو بذاره تویc:\pictures این ادرس جدید توی دیتابیس ذخیره بشه همچین چیزی میشه ؟؟
یعنی اگر فایلی به نام car توی درایو D هست با همون نام بره توی "c:\pictures" و حالا این c:\pictures\car توی دیتابیس ذخیره بشه ، و اگه car موجود هست c:\pictures به این صورت c:\pictures\car1 ذخیره بشه

oggiii
جمعه 16 بهمن 1388, 17:07 عصر
همچنان منتظر... :D