در این جلسه می خواهیم آموزش کار با ScrollBar و TrackBar و Timer در سی شارپ را به شما آموزش دهیم. در ادامه برای هر کدام مثال هایی بیان می شود تا به راحتی با نوع کارکرد این کنترل ها آشنا شوید.(تذکر:در جلسه اول با محیط ویندوز فرم آشنا شدیم و همچنین کار کردن با دستورات را در آموزش برنامه نویسی تحت کنسول آموزش دادیم لطفا اگر مبتدی هستید با این دو آموزش شروع کنید)
کاربرد کنترل ScrollBar در سی شارپ
H ScrollBar :نوار لغزان افقی
V ScrollBar :نوار لغزان عمودی
این دو ابزار مشخصه های مشابهی دارند. مشخصه های مهم آن ها عبارتند از:
Value : مشخص می کند که کاربر چه مقداری دستگیره های لغزان را زیاد و کم کرده است.
Maximum : مشخص می کند بالاترین مقداری که می توانند تولید کند.
Large Change : مشخص می کند هر بار ی که روی اسکرول کلیک کردیم چند تا بیاد و بهش اضافه کند.
مثالی می زنیم تا با مفهوم این ابزار هم بیشتر آشنا شویم!
نوار لغزان عمودی و افقی و کنترل باتن را روی فرم می گذاریم. الان می خواهیم برنامه ای بنویسیم که کنترل باتن با استفاده از ابزار اسکرول جابجا شود؟
مشخصه ی Maximum را برابر 200 و مشخصه ی Large Change را برابر 15 قرار می دهیم.
روی اسکرول افقی دابل کلیک می کنیم و داخل رویداد 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;
}
برنامه را اجرا می کنیم:
می بینیم که با جلو بردن دستگیره های لغزان افقی کنترل باتن هم به طرف راست حرکت می کند و با پایین بردن دستگیره های لغزان عمودی کنترل باتن هم به طرف پایین حرکت می کند.
ولی مشکلی که این برنامه دارد با حرکت دادن دستگیره ها به طرف عقب و یا بالا باز کنترل باتن به طرف جلو و پایین حرکت می کند.
برای رفع این مشکل: بدون اینکه شرطی براش بزاریم از یک ترفندی استفاده می کنم.
خاصیت Location کنترل باتن را پیدا می کنم ی دونه X دارد و ی دونه Y که مقدار آن ها را لازم دارم:
برنامه را بدین صورت تغییر می دهیم
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;
}
برنامه را اجرا می کنیم:
و الان دیگر اگر دستگیره اسکرول را به عقب حرکت دهیم کنترل باتن هم طبق آن به عقب حرکت می کند:
کنترل TrackBar در سی شارپ
این جلسه می خواهیم با ابزار جدیدی آشنا بشیم به نام TrackBar ، این ابزار یک حالت اسکرول باری است که می توانیم زیاد و کم کنیم
می خواهیم برنامه ای بنویسیم که با استفاده از ابزار TrackBar رنگ پس زمینه فرم را تغییر دهیم تا بیشتر با کاربرد آن اشنا شویم. 3 تا کنترل 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;
}
برنامه را اجرا می کنیم:
کنترل Timer در سی شارپ
اگر داخل برنامه نیاز باشه یک سری از کدها را در فاصله های زمانی مشخص بیاره هیچ راهی نداریم مگر اینکه از ابزار Timer در سی شارپ استفاده کنیم:
تایمر دوتا مشخصه ی مهم دارد:
- Interval : به معنای تاخیرهای زمانی که کدهایمان اجرا شود مثلا اگر مقدار آن را برابر 1000 قرار دهیم هر یک ثانیه یکبار کدهای داخل تایمر اجرا می شوند.
- Enabled: اگر True قرار دهیم تایمر فعال می شود و گرنه تایمر غیر فعال است.
یک مثال ساده می زنیم که تاریخ و ساعت سیستم ر ا به ما نشان می دهد:
مشخصه ی Interval آن را برابر 1000 قرار دهیم.
private void Form1_Load(object sender, EventArgs e)
{
label1.Text = DateTime.Now.ToString();
}
برنامه را اجرا می کنیم:
مشکلی که این برنامه دارد در واقع مثل ساعتی است که باطریش خوابیده است برای اینکه ثانیش کار کند فقط باید Enabled آن را برابر True قرار دهیم
می خواهیم برنامه ای بنویسیم به جای اینکه ساعت را داخل lable نمایش دهد داخل نوار ابزار پایین فرم نمایش دهد.
ابتدا داخل ToolBox ابزار StatusStrip را انتخاب می کنیم خودش ته فرم قرار می گیرد( یک مشخصه ی مهمی دارد بنام Items ، یک آیتم را اضافه می کنیم. با زدن کلید Add این کار انجام می شود )
private void timer1_Tick(object sender, EventArgs e)
{
toolStripStatusLabel1.Text = DateTime.Now.ToString();
}
برنامه را اجرا می کنیم:
آموزش ما به پایان رسید. امیدواریم از کار کردن با آموزش کار با ScrollBar و TrackBar و Timer در سی شارپ لذت برده باشید.
دیدگاه خود را بنویسید