PDA

View Full Version : تعویض backGround



bargozide
چهارشنبه 18 آبان 1390, 21:55 عصر
سلام خسته نباشید.
می خواستم بدونم که با timer چطور میشه backGround فرم رو هر از مدتی عوضش کرد؟

AliRezaPro
چهارشنبه 18 آبان 1390, 22:10 عصر
چرا با تایمر ؟ چرا این امکان رو بصورت منو الی به کار نمیدید تا خودش عوض کنه ؟

bargozide
چهارشنبه 18 آبان 1390, 22:19 عصر
چرا با تایمر ؟ چرا این امکان رو بصورت منو الی به کار نمیدید تا خودش عوض کنه ؟


من با این منویی که میگید کار نکردم.
چون کار با تایمر رو برای تعویض رنگ بلد بودم از یکی از استادا پرسیدم که چطور میتونم backGround رو برای پروژه هر از مدتی عوض کنم که اونم گفت با تایمر میتونی.

میشه بگید چطور میتونم با منویی که میگید کار کنم؟

AliRezaPro
چهارشنبه 18 آبان 1390, 22:38 عصر
در واقع استادتون بدترین راه ممکن رو جلو راه شما گذاشت . در واقع اینطور براتون مثال میزنم . شما فرض کنید فرم شما در حالیکه درگیر انجام چندین کار با هم هست و قراره چندین کار رو بکنه , یاید با تایمر که هم حافظه ی زیادی میگیریه و هم کلا وقت گیر هست و همیطور کلا کنترل مشکل سازی هست , بک گراند رو هم چینج کنه !!
مهندسی بهتر برای نرم افزار اینه که خود کاربر این کار رو بکنه . بصورت منو الی .

شما همه ی عکس هایی که میخواهید بصورت بک گراند در بیاد رو در ریسورس برنامه بگزارید و در کنترل پنل برنامه ( اگر داشته باشه ) از همه ی عکس ها یه پرویو کوچیک نشون بده تا زمانی که خود کاربر خواست عوض کنه .
من متاسفانه بسیار خسته هستم نمیتونم کد براتون قرار بدم . اما بطور معمول عوض کردن بک گراند به همین سادگی هست
Bitmap bmp = new Bitmap(@"C:\Users\AliReza\Pictures\Kung.Fu.Panda.jpg");
this.BackgroundImage = bmp;

مرتضی تقدمی
چهارشنبه 18 آبان 1390, 23:08 عصر
سلام
http://barnamenevis.org/showthread.php?306997-%D8%AA%D8%B5%D9%88%DB%8C%D8%B1-%D8%AA%D8%B5%D8%A7%D8%AF%D9%81%DB%8C&p=1347343#post1347343
پست 6

bargozide
جمعه 20 آبان 1390, 02:45 صبح
عزیز چرا سوال های منو قرار نمی دید؟

bargozide
جمعه 20 آبان 1390, 02:46 صبح
تا حالا چند بار لینک گذاشتم ولی سیستم گفته که باید از نظر مدیریت تایید بشه.
ولی خوب من که چیزی ندیدم

bargozide
جمعه 20 آبان 1390, 14:46 عصر
باشه این سری دستی می نویسم. نه عکس میذارم نه پروژه!

دوستان من پروژه ای رو که دارم انجام میدم از MenuStrip استفاده کردم. برای اینکه بتونم چند عکس رو به صورت رندوم در backGround به نمایش در بیارم یک timer هم در فرمم قرار دادم. (چون استادمون گفته که باید بوسیله timer این عملیات صورت بگیره)

با توجه به لینکی که آقا مرتضی قرار دادند. من پروژه ی ایشون رو که به زبان vb.net بود رو به #C تغییر دادم. ولی خوب زمانی که پروژه ی خودم رو اجرا می کنم backGround خالیه و هیچ تغییری نمی کنه.
این ها کدهایی هست که من وارد کردم.




private void TavizeRoghan_Load(object sender, EventArgs e)
{
timer1.Interval = 1000;
timer1.Strat();
}





private void timer1_Tick(object sender, EventArgs e)
{
Random rand = new Random();
int num = 0;
num = rand.Next(1, 5);
this.BackgroundImage = Image.Fromfile(Application.StartupPath + "\\Pictures\\ + num + ".jpg");
}




من اولش فکر کردم که کافیه کلمه pics رو که در پروژه ی آقا مرتضی بود تغییر بدم کار حله ولی خوب مثل اینکه مشکل فراتر از این حرفاست.



دوستان من خیلی این پروژه برام مهمه و الان نزدیک به 2 روزه که روی همین یه قسمت گیر کردم اگه امکان داره کمک کنید.



با تشکر

مرتضی تقدمی
جمعه 20 آبان 1390, 17:20 عصر
الان مشکل شما دقیقا کجاست؟! عکس ها رو توی پوشه Pictures با نام 1-5.jpg که بذارید حله دیگه.

Farshid007
جمعه 20 آبان 1390, 19:06 عصر
خوب این کد که مشکلی نداره!!!!

bargozide
جمعه 20 آبان 1390, 19:21 عصر
ممنون از توجه شما.
حقیقتش مشکلم اینجاست که نمیدونم باید کجا پوشه بسازم و عکس ها رو با چه نام هایی توی اون انتقال بدم.
تا الان یه بار یه پوشه با نام Pictures رو در قسمت solution Explorer ویژوال، ساختم و عکس ها رو با نام های 1-5.jpg و 2-5.jpg تا 5-5.jpg توی اون ریختم که جوابی نداشت.
یه بار دیگه هم توی خود پوشه ی Pictures کامپیوتر عکس ها رو با همان نام ها درون اون انتقال دادم که باز هم نتیجه نداشت.

مرتضی تقدمی
جمعه 20 آبان 1390, 19:45 عصر
دوست من در همین حد که باید بلد باشی دیگه!
توی پوشه debug (یعنی کنار فایل اجرایی برنامه) یک پوشه به نام Pictures بساز. بعد به همون تعدادی که توی برنامه گفتی (اینجا 5 تا) عکس بساز. از 1 تا 5 (نه 1-5)هم نامگذاری کن. حله اینجوری.

bargozide
جمعه 20 آبان 1390, 20:10 عصر
آقا مرتضی یه دنیا ممنون.

نجاتم دادی رفیق.