در جلسه پانزدهم از سری جلسات آموزش سی شارپ تحت ویندوز فرم قرار بر این است که کنترل های ProgressBar و ContextMenuStrip و NotifyIcon و تب کنترل در سی شارپ را آموزش دهیم. هر کدام را با مثال های جالب و به صورت تصویری دنبال می کنیم.(ناگفته نماند که سایر کنترل ها در جلسات قبل گفته شد.)
تذکر:در جلسه اول با محیط ویندوز فرم آشنا شدیم و همچنین کار کردن با دستورات را در آموزش برنامه نویسی تحت کنسول آموزش دادیم لطفا اگر مبتدی هستید با این دو آموزش شروع کنید.
کار با تب کنترل در سی شارپ (TabControl)
ابتدا یک نمونه از تب کنترل در سی شارپ (TabControl) را در قالب مثال های موجود با هم نگاه می کنیم تا با کاربرد آن آشنا شوید:
روی یکی از برنامه های داخل ویندوز راست کلیک کرده و Properties را انتخاب می کنیم، مثلا Visual Studio را انتخاب می کنیم روی آن راست کلیک کرده و Properties را می زنیم.
فرم زیر باز می شود ببینید فرم من چقدر کوچک است ولی می بینیم کلی اطلاعات داخل این فرم وجود دارد در واقع به کمک همین تب کنترل در سی شارپ (TabControl) است که می توانیم داخل فرم به این کوچکی کلی اطلاعات داشته باشیم داشته باشیم:
می خواهیم این جلسه با هم TabControl را پیاده سازی کنیم،کنترل TabControl را از پنجره ToolBox انتخاب می کنیم و روی فرم قرار می دهیم:
مشخصه های مهمی که این کنترل دارد :
Dock :آن را روی Fill قرار می دهیم تا اندازه TabControl من به اندازه فرم درآید.
اگر بخواهیم این tabPage ها را اضافه کنیم طبق تصویر زیر عمل می کنیم و AddTab را انتخاب می کنیم.
اگربخواهیم که این tabPage ها زیر هم قرار بگیرند یک مشخصه ای دارد بنام Multiline که آن را روی True قرار می دهیم
اگربخواهیم کنار هر یک از tabPage ها یک آیکون باشد از پنجره ToolBox کنترل ImageList را انتخاب می کنیم:
کنترل ImageList یک خاصیتی دارد بنام image که در پنجره ای که باز می شود چند تا آیکون را انتخاب می کنیم و OK را می زنیم:
کنترل TabControl یک خاصیتی دارد بنام ImageList که آن را روی imageList1 قرار می دهیم:
و بعد هر کدام ازtabPage ها یک مشخصه ای دارند بنام ImageIndex که یک آیکون از لیست ImageList برایش انتخاب می کنیم
مثال ساده ای می زنیم تا شما دوستان بهتر با این کنترل آشنا شویم، هم اکنون یک Button داخل tabPage1 قرار دهیم و نام آن را به Start تغییر می دهیم:
و داخل tabPage مربوط به Timer، دو تا لیبل قرار می دهیم و Name آنها را به lblMinute و lblSecond و Text آنها مطابق شکل تغییر میدهیم:
نحوه کدنویسی:
الان می خواهیم Start که زدیم تایمر فعال شود، ابتدا یک کنترل تایمر از پنجره ی ToolBox انتخاب می کنیم و مشخصه ی Interval آن را برابر 1000 قرار می دهیم:
int min, sec;
//ابتدا دو تا متغیر سراسری تعریف می کنیم
private void button1_Click(object sender, EventArgs e)
{
timer1.Enabled = !(timer1.Enabled);
if(button1.Text== “Start”)
button1.Text = “stop”;
else
button1.Text = “Start”;
}
private void timer1_Tick(object sender, EventArgs e)
{
sec += 1;
if (sec == 59){
sec = 0;
min += 1;
}
lblSecond.Text = sec.ToString();
lblMinute.Text = min.ToString();
}
برنامه را اجرا می کنیم:
روی Start کلیک می کنیم می بینیم که متن کنترل باتن طبق دستور ی که نوشته بودیم عوض می شود:
داخل زبانه Timer می شویم می بینیم که تامیر فعال شده است:
امیدواریم از آموزش تب کنترل در سی شارپ با مثال لذت برده باشید و برای شما کاربردی باشد.
کاربرد کنترل ProgressBar در سی شارپ
ابزار جدیدی بعدی به نام ProgressBar می باشد که شبیه همان چیزی است که هنگامی که برنامه را نصب می کنیم مدت زمان نصب را نمایش می دهد.
مشخصه ی مهم آن Value است که اگرآن را برابر 50 قرارش بدهیم میاد و خودش را تا 50 درصد پر می کند:
یک مثال می زنیم تا بدونیم چه جوری باهاش کار کنیم:
ابزارهایی که احتیاج داریم:
Button
Lable
Timer: که مشخصه ی Interval آن را برابر 1000 قرار می دهیم
نحوه کدنویسی:
private void button1_Click(object sender, EventArgs e)
{
timer1.Start(); // تایمر را فعال می کند
}
private void button2_Click(object sender, EventArgs e)
{
timer1.Stop(); //تایمر را غیر فعال می کند
}
private void timer1_Tick(object sender, EventArgs e)
{
if(progressBar1.Value<100)
{
progressBar1.Value += 10;
//اضافه کند progressBar1 هر یک ثانیه یکبار 10 تا به مقدار
label1.Text = progressBar1.Value.ToString();
//تغییر می کند لیبل مقدارش را به ما نشان دهد progressBar1 هر بارکه مقدار
}
برنامه را اجرا می کنیم:
می خواهیم برنامه را بدین صورت تغییر دهیم که وقتی مقدار ProgressBar به 100 رسید فرم را ببند و فرم دیگری را باز کند، بنابراین ابتدا فرم دیگری را ایجاد می کنیم طبق مسیر زیر:
و نامی برایش انتخاب می کنیم که فعلا می گذاریم نامش همان Form2 باشد.
private void timer1_Tick(object sender, EventArgs e)
{
If (progressBar1.Value<100)
{
progressBar1.Value += 10;
label1.Text = progressBar1.Value.ToString();
}
else
{
timer1.Stop();
Form2 F = new Form2();
this.Hide();
//اشاره به فرم جاری دارد this
چرا Hide : برای اینکه فعلا نمی توانیم فرم جاری را ببندیم چون داخلش هستیم پس آن را مخفی می کنیم و وقتی فرم 2 باز //شدند آن موقع فرم جاری را می بندیم که اگر فرم 2 را بستیم کلا از برنامه خارج شویم//
F.ShowDialog();
this.Close();
}
}
این کنترل هم به راحتی یاد گرفتیم و با کاربرد آن آشنا شدیم.
کاربرد کنترل ContextMenuStrip در سی شارپ
ابتدا یک مثالی می زنیم تا با مفهوم آن آشنا شویم، دو تا کنترل Text روی فرم قرار می دهم و برنامه را اجرا می کنم
روی هر کدام از آنها راست کلیک کنم یک سری گزینه ها برای ما می آورد:
حالا اگر بخواهیم که ابزارمون را سفارشی کنیم یعنی راست کلیکش را خودمان بسازیم از ابزاری بنام ContextMenuStrip استفاده می کنیم:
کنترل ContextMenuStrip روی فرم قرار می دهیم:
گزینه هایی که دوست داریم راست کلیک ابزارمان داشته باشد را وارد می کنیم:
کنترل ContextMenuStrip مشخصه ای دارد بنام Text که مقدار Text1 را برابر ContextMenuStrip که الان ساختیه ایم قرار می دهیم :
برنامه را اجرا می کنیم و ملاحظه می کنید راست کلیک کنترلمان به همان چیزی تبدیل شد که ما خواستیم:
یک گزینه ی دیگری هم به ContextMenuStrip اضافه می کنیم تا با کاربرد آن بیشتر آشنا شویم:
روی BackColor.Red دابل کلیک می کنیم:
private void backColorRedToolStripMenuItem_Click(object sender, EventArgs e)
{
textBox1.BackColor = Color.Red;
}
روی BackColor. Green دابل کلیک می کنیم:
private void backColorGreenToolStripMenuItem_Click(object sender, EventArgs e)
{
textBox1.BackColor = Color.Green;
}
برنامه را اجرا می کنیم:
منو استریپ کاربرد خیلی زیادی داره و خیلی هم جالبه، امیدواریم به کارتون بیاد :)
کاربرد کنترل NotifyIcon در سی شارپ
یک ابزار دیگری هم داریم بنام NotifyIcon اگر لازم بود آیکون برنامتون را داخل سیستم ترای یعنی اینجا:
نمایش بدهیم از این ابزار استفاده می کنیم بدین صورت که ابزار NotifyIcon از پنجره Toolbaxانتخاب کنیم:
این ابزار یک مشخصه ای دارد بنام آیکون , آیکونی را برای آن در نظر می گیریم:
نحوه کد نویسی:
داخل رویداد کلیک آن می نویسیم
private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
{
WindowState = FormWindowState.Normal;
//این خط به این معناست که وضعیت فرم را حالت اولیه برگردان
}
برنامه را اجرا می کنیم، ملاحظه می کنید آیکونی که برای NotifyIcon در نظر گرفتم داخل سیستم ترای قرارگرفته است
حالا وقتی فرمم را مینی مایز می کنم روی آیکونی که داخل سیستم ترای است کلیک کنم فرمم را به حالت اولیه برمی گرداند.
در این جلسه با 4 کنترل ProgressBar و ContextMenuStrip و NotifyIcon و تب کنترل در سی شارپ آشنا شدیم. امیدواریم هر کدام را خوب یاد گرفته باشید و بتوانید از آن ها در برنامه هاتون استفاده کنید.
دیدگاه خود را بنویسید