در این جلسه می خواهیم آموزش کار با ScrollBar و TrackBar و Timer در سی شارپ را به شما آموزش دهیم. در ادامه برای هر کدام مثال هایی بیان می شود تا به راحتی با نوع کارکرد این کنترل ها آشنا شوید.(تذکر:در جلسه اول با محیط ویندوز فرم آشنا شدیم و همچنین کار کردن با دستورات را در آموزش برنامه نویسی تحت کنسول آموزش دادیم لطفا اگر مبتدی هستید با این دو آموزش شروع کنید)

کاربرد کنترل ScrollBar در سی شارپ

ScrollBar در سی شارپ

H ScrollBar :نوار لغزان افقی

V ScrollBar :نوار لغزان عمودی

این دو ابزار مشخصه های مشابهی دارند. مشخصه های مهم آن ها عبارتند از:

Value : مشخص می کند که کاربر چه مقداری دستگیره های لغزان را زیاد و کم کرده است.

Maximum : مشخص می کند بالاترین مقداری که می توانند تولید کند.

Large Change : مشخص می کند هر بار ی که روی اسکرول کلیک کردیم چند تا بیاد و بهش اضافه کند.

مثالی می زنیم تا با مفهوم این ابزار هم بیشتر آشنا شویم!

نوار لغزان عمودی و افقی و کنترل باتن را روی فرم می گذاریم. الان می خواهیم برنامه ای بنویسیم که کنترل باتن با استفاده از ابزار اسکرول جابجا شود؟

مشخصه ی Maximum را برابر 200 و مشخصه ی Large Change را برابر 15 قرار می دهیم.

ScrollBar در سی شارپ

روی اسکرول افقی دابل کلیک می کنیم و داخل رویداد Scroll آن می نویسیم:

private void hScrollBar1_Scroll(object sender, ScrollEventArgs e)

{
button1.Left = button1.Left + hScrollBar1.Value;
}

روی اسکرول عمودی دابل کلیک می کنیم و داخل رویداد Scroll آن می نویسیم:

private void vScrollBar1_Scroll(object sender, ScrollEventArgs e)

{
button1.Top = button1.Top + vScrollBar1.Value;
}

برنامه را اجرا می کنیم:

ScrollBar در سی شارپ

می بینیم که با جلو بردن دستگیره های لغزان افقی کنترل باتن هم به طرف راست حرکت می کند و با پایین بردن دستگیره های لغزان عمودی کنترل باتن هم به طرف پایین حرکت می کند.

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

برای رفع این مشکل: بدون اینکه شرطی براش بزاریم از یک ترفندی استفاده می کنم.

خاصیت Location کنترل باتن را پیدا می کنم ی دونه X دارد و ی دونه Y که مقدار آن ها را لازم دارم:

ScrollBar در سی شارپ

برنامه را بدین صورت تغییر می دهیم

private void hScrollBar1_Scroll(object sender, ScrollEventArgs e)

{
button1.Left = 9 + hScrollBar1.Value;
}
private void vScrollBar1_Scroll(object sender, ScrollEventArgs e)
{
button1.Top = 79 + vScrollBar1.Value;
}

برنامه را اجرا می کنیم:

ScrollBar در سی شارپ

و الان دیگر اگر دستگیره اسکرول را به عقب حرکت دهیم کنترل باتن هم طبق آن به عقب حرکت می کند:

ScrollBar در سی شارپ

کنترل TrackBar در سی شارپ

این جلسه می خواهیم با ابزار جدیدی آشنا بشیم به نام TrackBar ، این ابزار یک حالت اسکرول باری است که می توانیم زیاد و کم کنیم

TrackBar در سی شارپ

می خواهیم برنامه ای بنویسیم که با استفاده از ابزار TrackBar رنگ پس زمینه فرم را تغییر دهیم تا بیشتر با کاربرد آن اشنا شویم. 3 تا کنترل TrackBar را روی فرم قرار می دهیم.

مشخصه هایی که باید تغییر کند عبارتند از :

TrackBar در سی شارپ : تا رنگها را برایمان ایجاد کند.

TrackBar در سی شارپ : یک خط زیرش هست که آن خط زیبا نیست و آن خط را بر می داریم.

TrackBar در سی شارپ : به جای افقی عمودی به ما نشان دهد..

TrackBar در سی شارپ

RGB : این سه رنگ رنگ هایی هستند که از ترکیب آنها کل رنگ ها بدست می آید.

private void trackBar1_Scroll(object sender, EventArgs e)

{
int R = trackBar1.Value;
int G = trackBar2.Value;
int B = trackBar3.Value;
Color RGB = Color.FromArgb(R, G, B);

// Color: یک کلاس است که حاوی رنگ های تعریف شده خود کامپیوتر است
this.BackColor = RGB;

// this :در اینجا اشاره دارد به فرم جاری

}

private void trackBar2_Scroll(object sender, EventArgs e)
{
int R = trackBar1.Value;
int G = trackBar2.Value;
int B = trackBar3.Value;
Color RGB = Color.FromArgb(R, G, B);
this.BackColor = RGB;

}
private void trackBar3_Scroll(object sender, EventArgs e)
{
int R = trackBar1.Value;
int G = trackBar2.Value;
int B = trackBar3.Value;
Color RGB = Color.FromArgb(R, G, B);
this.BackColor = RGB;

}

برنامه را اجرا می کنیم:

TrackBar در سی شارپ

کنترل Timer در سی شارپ

اگر داخل برنامه نیاز باشه یک سری از کدها را در فاصله های زمانی مشخص بیاره هیچ راهی نداریم مگر اینکه از ابزار Timer در سی شارپ استفاده کنیم:

تایمر دوتا مشخصه ی مهم دارد:

کنترل Timer در سی شارپ

  • Interval : به معنای تاخیرهای زمانی که کدهایمان اجرا شود مثلا اگر مقدار آن را برابر 1000 قرار دهیم هر یک ثانیه یکبار کدهای داخل تایمر اجرا می شوند.

کنترل Timer در سی شارپ

  • Enabled: اگر True قرار دهیم تایمر فعال می شود و گرنه تایمر غیر فعال است.

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

کنترل Timer در سی شارپ

مشخصه ی Interval آن را برابر 1000 قرار دهیم.

private void Form1_Load(object sender, EventArgs e)
{
label1.Text = DateTime.Now.ToString();
}

برنامه را اجرا می کنیم:

کنترل Timer در سی شارپ

مشکلی که این برنامه دارد در واقع مثل ساعتی است که باطریش خوابیده است برای اینکه ثانیش کار کند فقط باید Enabled آن را برابر True قرار دهیم

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

ابتدا داخل ToolBox ابزار StatusStrip را انتخاب می کنیم خودش ته فرم قرار می گیرد( یک مشخصه ی مهمی دارد بنام Items ، یک آیتم را اضافه می کنیم. با زدن کلید Add این کار انجام می شود )

کنترل Timer در سی شارپ

کنترل Timer در سی شارپ

private void timer1_Tick(object sender, EventArgs e)
{
toolStripStatusLabel1.Text = DateTime.Now.ToString();

}

برنامه را اجرا می کنیم:

کنترل Timer در سی شارپ

آموزش ما به پایان رسید. امیدواریم از کار کردن با آموزش کار با ScrollBar و TrackBar و Timer در سی شارپ لذت برده باشید.