کاربرد تایمر(timer) در برنامه C#

کنترل Timer دستور یا دستورات خاصی را در بازه های زمانی خاصی که در خصوصیت interval مشخص می شود اجرا می کند. به عنوان مثال اگه بخواهید نامتان را هر 5 ثانیه یکبار چاپ کنید می توانید از این کنترل استفاده نمایید. کنترل Timer از کنترل های غیر بصری است و در قسمت Component Tray قرار می گیرد. این کنترل خصوصیات زیادی ندارد.

وقتی که خصوصیت Enabled را برابر true قرار دهید کنترل شروع به کار و اگر برابر false قرار دهید متوقف می شود. خصوصیت interval مقدار زمانی که باید بگذرد تا دستور یا دستورات داخل رویداد tick فراخوانی شود را مشخص می کند.رویداد tick رویداد پیشفرض کنترل تایمر است. به این نکته توجه کنید که مقدار این خصوصیت(interval) بر حسب میلی ثانیه مشخص می شود. به عنوان مثال قرار دادن مقدار 5000 در جلوی این خصوصیت به معنای این است که رویداد tick هر 5 ثاینه یکبار فراخوانی شود. به یک نمونه برنامه که در آن از کنترل timer استفاده شده است توجه نمایید. برنامه شامل یک دکمه است که در جهت بالا و پایین فرم حرکت می کند. یک پروژه Windows Application با نامTimerDemo ایجاد کنید. یک دکمه را در وسط فرم قراردهید

یک کنترل Timer را به روی فرم بکشید. این کنترل در قسمت Component جعبه ابزار قرار دارد. همانطور که قبلا گفته شد این کنترل در قسمت Component Tray قرار می گیرد.

کنترل timer را انتخاب و خاصیت interval آن را برابر 50 و خاصیت Enabled آنرا برابر true قرار دهید.این کار باعث می شود زمانی که برنامه اجرا شود کنترل timer شروع به کار کند. روی کنترل timer دابل کلیک کنید تا کنترل کننده رویداد پیشفرض آن که همان رویداد tick است ایجاد شود.به یاد داشته باشید دستورات داخل این کنترل کننده رویداد هر 50 میلی ثانیه یکبار فراخوانی می شوند.یک نمونه متغیر به شکل زیر در کلاس فرم تعریف کنید.این متغیر برای نگهداری تعداد پیکسل هایی است که در هر بار فراخوانی رویداد tick پیمایش می شوند.

private int velocity = 5;

کد های زیر را به کنترل کننده رویداد tick اضافه کنید.

private void timer1_Tick(object sender, EventArgs e)
{
    if (button1.Top <= 0 || button1.Bottom > this.ClientSize.Height)
        velocity = -velocity;

    button1.Top += velocity;
}

وقتی که رویداد tick فراخوانی می شود دستورات بدنه آن اجرا می شوند. در دستور شرط ابتدا بررسی شده است که دکمه به پایین فرم رسیده است یا به بالای فرم. برای اینکه مشخص کنیم که دکمه به بالای فرم چسبیده است از خاصیت Button.Top استفاده کرده ایم.این خصوصیت مقدار مختصات y گوشه ی بالا و چپ دکمه را مشخص می کند.
اگر مقدار این خصوصیت برابر یا کوچکتراز 0 باشد به این معنی است که دکمه به بالای فرم رسیده است. به این نکته توجه کنید که مبدا مختصات در فرم گوشه بالای و سمت چپ فرم است. قسمت دوم شرط بررسی می کند که آیا دکمه به قسمت پایین فرم رسیده است یا نه? برای این کار از خاصیت Button.Bottom که مختصات y دکمه را بر می گرداند استفاده کرده ایم.سپس بررسی کرده ایم که این مقدار را با مقدار خصوصیت Height(ارتفاع) فرم مقایسه کرده ایم.برای بدست آوردن ارتفاع فرم از خصوصیت Height که خود در خاصیت Form.ClientSize قرار دارد استفاده کرده ایم. اگر هر کدام از شرط ها درست باشند به راحتی با قرینه کردن مقدار (ضرب -1 در مقدار فعلی)velocity جهت حرکت دکمه را تغییر می دهیم.اگر دکمه به سمت بالا فرم حرکت کند (به این خاطر که 5 پیکسل به سمت بالا حرکت میکند) و به بالای فرم برسد جهت حرکت آن تغییر می کند. برنامه را اجرا کنید و نتیجه را مشاهده کنید.

شاید این مطالب را هم دوست داشته باشید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.