مشاهده نسخه کامل
: سوال در C#.Net
saeed_136915
23-11-2012, 15:15
سلام دوستان من یه مشکلی توی برنامه نویسی داشتم فقط یه مقدار عجله دارم اگه دوستان زود پاسخ بدین ممنون میشم.
من میخوام یه picturebox رو داخل یه panel به صورت راندم حرکت بدم. مشکلم اینه که اگه من دوتا عدد راندم تولید کنم (بین 1- و 1 ) و با x و y همون picturebox جمع کنم، اون picturebox حرکت چندانی نمیکنه و تو جای خودش میشه گفت میلرزه.
اگه بعد از هر تغییر مکان picturebox یه Thread.Sleep بزارم این مشکل درست میشه و اون عکس حرکت میکنه ولی مشکل اینه که برنامه یه جورایی فریز میشه.
اگر هم از تایمر و Stopwatch استفاده کنم برای ایجاد وقفه باید حلقه ی بی نهایت درست کنم که از CPU بیهوده استفاده میشه. (نمیدونم بدون حلقه ی بی نهایت هم میشه یه مقداری صبر کرد یا نه ولی چون تابع اصلی داخل تابع Tick یه تایمر هست استفاده از یه تایمر دیگه داخل اون فکر کنم مشکل ایجاد کنه)
من چیکار میتونم بکنم؟
تابعی داریم که به جای Thread.Sleep باشه و با اون یه مدت زمانی رو صبر کنیم؟؟
یا اصلا راه دیگه ای هست که بشه مثلا یه picturebox رو حرکت داد؟
خیلی خیلی ممنون میشم اگه زودتر جواب بدین. :sq_8:
szh_1367
23-11-2012, 16:31
سلام دوستان من یه مشکلی توی برنامه نویسی داشتم فقط یه مقدار عجله دارم اگه دوستان زود پاسخ بدین ممنون میشم.
من میخوام یه picturebox رو داخل یه panel به صورت راندم حرکت بدم. مشکلم اینه که اگه من دوتا عدد راندم تولید کنم (بین 1- و 1 ) و با x و y همون picturebox جمع کنم، اون picturebox حرکت چندانی نمیکنه و تو جای خودش میشه گفت میلرزه.
اگه بعد از هر تغییر مکان picturebox یه Thread.Sleep بزارم این مشکل درست میشه و اون عکس حرکت میکنه ولی مشکل اینه که برنامه یه جورایی فریز میشه.
اگر هم از تایمر و Stopwatch استفاده کنم برای ایجاد وقفه باید حلقه ی بی نهایت درست کنم که از CPU بیهوده استفاده میشه. (نمیدونم بدون حلقه ی بی نهایت هم میشه یه مقداری صبر کرد یا نه ولی چون تابع اصلی داخل تابع Tick یه تایمر هست استفاده از یه تایمر دیگه داخل اون فکر کنم مشکل ایجاد کنه)
من چیکار میتونم بکنم؟
تابعی داریم که به جای Thread.Sleep باشه و با اون یه مدت زمانی رو صبر کنیم؟؟
یا اصلا راه دیگه ای هست که بشه مثلا یه picturebox رو حرکت داد؟
خیلی خیلی ممنون میشم اگه زودتر جواب بدین. :sq_8:
کدی که باهاش پیکچر باکس رو حرکت میدهید اینجا قرار دهید
اگر پیکچر باکس شما نسبت به پنل بزرگ باشه نباید انتظار داشته باشید که حرکت چندانی ببینید فقط در حد همان لرزش
درضمن نگفتید که چرا میخواهید پیکچر باکس حرکت کند ؟ و یا چه زمانی باید حرکت کند ( رویدادی که قراره حرکت پیکچر باکس رو کنترل کند بسیار مهمه ) و چه زمانی نباید حرکت کند
saeed_136915
23-11-2012, 17:11
این تابع تیک تایمر هست که حرکت پیکچر باکس ها داخل اون انجام میشه :
(mover[] یه آرایه از Picturebox هاست)
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
سایز پیکچر باکس ها خیلی کوچیکتر از پنل هست.
saeed_136915
23-11-2012, 23:57
ممنون از دوستان. حل شد :sq_24:
Payman_62
24-11-2012, 03:40
سلام.
اگه بعد sleep یه دستور doevents قرار بدی مشکلت حل میشه.
ضمنا شما هم اگه مشکل رو حل کردی به جای مطرح کردن حل شدن مشکل روش حل رو بیان کن.
saeed_136915
24-11-2012, 11:41
سلام.
اگه بعد sleep یه دستور doevents قرار بدی مشکلت حل میشه.
ضمنا شما هم اگه مشکل رو حل کردی به جای مطرح کردن حل شدن مشکل روش حل رو بیان کن.
چشم. چرا میزنی حالا :sq_13:
واسه حل اون مشکل من یه آرایه ی دو ردیفی تعریف کردم (تعداد ستون ها به اندازه ی تعداد picturebox ها ) ردیف اول واسه تعیین جهت حرکت و ردیف دوم واسه تعیین مقدار حرکت. این هم کدی که فعلا نوشتم واسه اون قسمت :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
szh_1367
29-11-2012, 18:45
این همه if تو در تو برای حرکت چنتا پیکچرباکس !
این رو ببین (شما بجای مختصات صفحه مختصات پنل رو بده )
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اگر تعداد پیکچر باکس ها زیاد است انها رو وارد یک لیست کنید سپس خصوصیات هر کدام رو با توجه به نیاز در حلقه ای تغییر دهید
سلام.
اگه بعد sleep یه دستور doevents قرار بدی مشکلت حل میشه.
ضمنا شما هم اگه مشکل رو حل کردی به جای مطرح کردن حل شدن مشکل روش حل رو بیان کن.
doevents شمشیری دولبه است استفاده از این دستور در برنامه های تجاری به هیچ عنوان توصیه نمی شود
masoomeh_sin
13-12-2012, 09:24
با سلام،امیدوارم مرا سریع راهنمایی کنید.کارم لنگ این یه خط برنامه است.دارم یه برنامه ای می نویسم که با توجه به موردی که در یک combo box از کاربر دریامت می کنه،برای هر مورد اطلاعات اون قسمت رو در لیست جداگانه ای ذخیره کنه.یعنی هر کدوم از موارد توی combo box برای ذخیره ،از یک لیست جداگانه استفاده می کنند.حالا چطوری باید بنویسم که اگر کاربر اینو انتخاب کن تو این لیست ذخیره کن،اگه اونو انتخاب کرد از یه لیست دیگه؟
szh_1367
13-12-2012, 10:16
با سلام،امیدوارم مرا سریع راهنمایی کنید.کارم لنگ این یه خط برنامه است.دارم یه برنامه ای می نویسم که با توجه به موردی که در یک combo box از کاربر دریامت می کنه،برای هر مورد اطلاعات اون قسمت رو در لیست جداگانه ای ذخیره کنه.یعنی هر کدوم از موارد توی combo box برای ذخیره ،از یک لیست جداگانه استفاده می کنند.حالا چطوری باید بنویسم که اگر کاربر اینو انتخاب کن تو این لیست ذخیره کن،اگه اونو انتخاب کرد از یه لیست دیگه؟
سلام
بهتره هر شخصی برای سوالی که میخواهد مطرح کند تاپیکی جداگانه ایجاد کند
اطلاعات شما کجا ذخیره میشوند ؟ در دیتابیس یا . . . .
لیست رو چطور در نظر گرفته اید ؟
با پاسخ دادن به این دو مورد میتوان ارتباط بین لیست و اطلاعات دریافتی رو برقرار کرد
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.