PDA

View Full Version : سوال: حرکت پنل با کلیک بر روی دکمه



perkas
چهارشنبه 20 شهریور 1392, 04:25 صبح
سلام

من میخوام یه پنل داشته باشم که با کلیک روی یک دکمه دارد فرم بشه ( مثلا از سمت راست ) و وسط فرم بایسته و با زدن دکمه دوم خارج بشه ( باز هم از سمت راست )

danialafshari
چهارشنبه 20 شهریور 1392, 08:48 صبح
سلام
در سایت زیاد مطرح شده جستجو کنید
Object ها نه تنها Panel با خاصیت Left حرکت می کنند
panel1.Left -= 5;
یه نمونه از حرکت
void Pmove()
{
while (true)
{
panel1.Left -= 5;
Thread.Sleep(400);
}
}
private void button1_Click(object sender, EventArgs e)
{
CheckForIllegalCrossThreadCalls = false;
Thread t = new Thread(Pmove);
t.Start();
}
باقیش با خودتون
موفق باشی

perkas
پنج شنبه 21 شهریور 1392, 04:09 صبح
تشکر دوست عزیز ولی من میخواستم که مختصات هم داشته باشه

مثلا وقتی رو دکمه کلیک کردم پنل حرکت کنه (از خارج از فرم ) و در مرکز فرم که رسید متوقف بشه
و همین عمل برای خروجش از فرم انجام بشه و از فرم خارج بشه

MohammadHadi2031
پنج شنبه 21 شهریور 1392, 07:37 صبح
طول مرکز رو از left پنل کم می کنید و سپس بر 5 تقسیم می کنید عدد بدست آمده تعداد دفعاتی است که باید به left پنل اضافه شود تا وارد فرم شود(منظورتون همین بود)

danialafshari
پنج شنبه 21 شهریور 1392, 08:23 صبح
تشکر دوست عزیز ولی من میخواستم که مختصات هم داشته باشه

مثلا وقتی رو دکمه کلیک کردم پنل حرکت کنه (از خارج از فرم ) و در مرکز فرم که رسید متوقف بشه
و همین عمل برای خروجش از فرم انجام بشه و از فرم خارج بشه

سلام
راه و چاه رو بهتون نشون دادن و شما باید قدم آخر رو بر دارید
اگر خودتون حل نکنید پس فرق شمای برنامه نویس با کد کپی کن چیه؟

perkas
پنج شنبه 21 شهریور 1392, 11:25 صبح
سلام
راه و چاه رو بهتون نشون دادن و شما باید قدم آخر رو بر دارید
اگر خودتون حل نکنید پس فرق شمای برنامه نویس با کد کپی کن چیه؟

تشکر دوست عزیز
برای حل مشکل کپی کردن هم از همون اول از یه روش استفاده کرده بودم که کارسازه
به جای اینکه متن جواب یا آموزش رو کپی کنم با پرینت اسکرین ازش عکس میگیرم تا مجبور بشم تایپش کنم و تو ذهنم ثبتش کنم
و وقتی روش مسلط شدم بعد حالات مختلفی رو که میشه باهاش ساخت رو میسازم

danialafshari
پنج شنبه 21 شهریور 1392, 11:31 صبح
تشکر دوست عزیز
برای حل مشکل کپی کردن هم از همون اول از یه روش استفاده کرده بودم که کارسازه
به جای اینکه متن جواب یا آموزش رو کپی کنم با پرینت اسکرین ازش عکس میگیرم تا مجبور بشم تایپش کنم و تو ذهنم ثبتش کنم
و وقتی روش مسلط شدم بعد حالات مختلفی رو که میشه باهاش ساخت رو میسازم

جواب !
معما چو حل گشت آسان شود
اگر جواب رو کسی بهت نداد یا پیدا نکردی باید قیدش رو بزنی؟

panel1.Left -= 5; حالات مختلف این رو + Form رو مسلط بشید، کارتون راه میوفته
موفق باشید

perkas
جمعه 22 شهریور 1392, 03:20 صبح
جواب !
معما چو حل گشت آسان شود
اگر جواب رو کسی بهت نداد یا پیدا نکردی باید قیدش رو بزنی؟
حالات مختلف این رو + Form رو مسلط بشید، کارتون راه میوفته
موفق باشید

تشكر

با اين كدها كارم راه ميفته ( با راهنمايي دوستان )
بصورت جهشي با اين كد :
panel1.Location = new Point(50, 99);

با ريتم خاصي وارد بشه :
panel1.Left -= 5; (البته در تايمر و با شرط )

ولي كنجكاوم در مورد + Form بيشتر بدونم ( خيلي گشتم ولي به جايي نرسيدم )

perkas
جمعه 22 شهریور 1392, 15:58 عصر
يه نمونه تغيير سايز فرم و پنل + حركت شيء ساختم
ولي lnterval تايمر رو كه روي 1 ميزارم باز هم سرعتش كمه و عدد كمتر از 1 رو هم قبول نميكنه ؟؟؟؟




همچنان توصيه دوستمون danialafshari درباره + form ذهنم رو مشغول كرده
هر چي هم تو متدها گشتم به نتيجه نرسيدم
لطفا يكي راهنمايي كنه

aliagamon
جمعه 22 شهریور 1392, 16:03 عصر
پروژه جالبی شده بود....:لبخند:
شما بجای اینکه تایمر رو سریع کنین مقدار حرکت رو زیاد کنید (مثلا برای ++ از این استفاده کنین):
panel1.Width+=5;

perkas
جمعه 22 شهریور 1392, 16:24 عصر
پروژه جالبی شده بود....:لبخند:
شما بجای اینکه تایمر رو سریع کنین مقدار حرکت رو زیاد کنید (مثلا برای ++ از این استفاده کنین):
panel1.Width+=5;

تشكر
الان خوب شد
فقط يكي يه توضيحي در مورد +form بده دارم ديوانه ميشم

CsharpNevisi
جمعه 22 شهریور 1392, 16:33 عصر
تشكر
الان خوب شد
فقط يكي يه توضيحي در مورد +form بده دارم ديوانه ميشم

سلام دوست عزیز یه راه هست که میتونه با حالت های انیمیشنی مختلف و خیلی زیبا تر از این چیزی که شما درست کردین پنلو نمایش بده ... !!!!
این که بخوایی لوکیشن پنلو تغییر بدی خیلی جالب نیست ... !!!!

perkas
جمعه 22 شهریور 1392, 16:45 عصر
سلام دوست عزیز یه راه هست که میتونه با حالت های انیمیشنی مختلف و خیلی زیبا تر از این چیزی که شما درست کردین پنلو نمایش بده ... !!!!
این که بخوایی لوکیشن پنلو تغییر بدی خیلی جالب نیست ... !!!!

ميتوني يه نمونه سورس بزاري ؟
يا در مورد توابع و متدهاش بيشتر توضيح بدي ؟

CsharpNevisi
جمعه 22 شهریور 1392, 16:47 عصر
ميتوني يه نمونه سورس بزاري ؟
يا در مورد توابع و متدهاش بيشتر توضيح بدي ؟

باشه ... فقط 1 مین صبر کن اموزشیشو برات بنویسم .... !!!!

CsharpNevisi
جمعه 22 شهریور 1392, 16:56 عصر
اول از همه این دی ال الو دانلود کن ..... !!!!!

دانلود دی ال ال (http://public.fileup.ir/d/2149852/Animator.dll)
خب حالا درگ کنش تو تولباکس تا جزوی از کنترل هات بشه ... !!!
animator رو به فرمت اضافه کن ... و بعد از افزودن انتخاب کن و از تو پراپرتیز مشخصه Animation Type رو برابر یه مقدار قرار بده مثلا ( Mosaic ) .... !!!!
پنل بزار سر جاش ... اونجایی که میخوایی ظاهر بشه .... !!!!!
خب حالا تو فرم لودت پنلو هاید کن ... !!!!
اینطوری .... :
panel1.Hide();
بعد بیا تو دکمه نمایش اینو بنویس :
animator1.Show(panel1);
واسه دکمه مخفی هم اینو بنویس :
animator1.Hide(panel1);
میتونی از پراپرتیز اینترول animator1 رو کم و زیاد کنی ... !!!
خب حالا برنامه رو ران کن و لذت ببر ... !!!!

perkas
جمعه 22 شهریور 1392, 19:34 عصر
با تشکر از همه دوستان که راهنمایی کردن

فرممو به صورت زیر ساختم

CsharpNevisi
جمعه 22 شهریور 1392, 19:38 عصر
خوبه ... نه ... از ایده ای دادی خوشم اومد ... !!!!
منم همینکارو کردم .... ولی پنلم رو کامپوننت هام میاد ول با استایل ورق .. .!!!

aliagamon
جمعه 22 شهریور 1392, 22:43 عصر
چیز جالبی از کار در اومده یه استایل مترو براش درست کن (یا نکن!)بزار تو نمونه پروژه های کوچک ... شاید به کار کسی بیاد ..