در جلسه پانزدهم از سری جلسات آموزش سی شارپ تحت ویندوز فرم قرار بر این است که کنترل های 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 می باشد که شبیه همان چیزی است که هنگامی که برنامه را نصب می کنیم مدت زمان نصب را نمایش می دهد.

ProgressBar در سی شارپ

مشخصه ی مهم آن Value است که اگرآن را برابر 50 قرارش بدهیم میاد و خودش را تا 50 درصد پر می کند:

ProgressBar در سی شارپ

یک مثال می زنیم تا بدونیم چه جوری باهاش کار کنیم:

ابزارهایی که احتیاج داریم:

Button

Lable

Timer: که مشخصه ی Interval آن را برابر 1000 قرار می دهیم

ProgressBar در سی شارپ

نحوه کدنویسی:

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 در سی شارپ

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

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

می خواهیم برنامه را بدین صورت تغییر دهیم که وقتی مقدار ProgressBar به 100 رسید فرم را ببند و فرم دیگری را باز کند، بنابراین ابتدا فرم دیگری را ایجاد می کنیم طبق مسیر زیر:

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

و نامی برایش انتخاب می کنیم که فعلا می گذاریم نامش همان 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 استفاده می کنیم:

کنترل ContextMenuStrip روی فرم قرار می دهیم:

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

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

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

کنترل ContextMenuStrip مشخصه ای دارد بنام Text که مقدار Text1 را برابر ContextMenuStrip که الان ساختیه ایم قرار می دهیم :

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

برنامه را اجرا می کنیم و ملاحظه می کنید راست کلیک کنترلمان به همان چیزی تبدیل شد که ما خواستیم:

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

کنترل 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;
}

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

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

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

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

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

منو استریپ کاربرد خیلی زیادی داره و خیلی هم جالبه، امیدواریم به کارتون بیاد :)

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

یک ابزار دیگری هم داریم بنام NotifyIcon اگر لازم بود آیکون برنامتون را داخل سیستم ترای یعنی اینجا:

 NotifyIcon در سی شارپ

نمایش بدهیم از این ابزار استفاده می کنیم بدین صورت که ابزار NotifyIcon از پنجره Toolbaxانتخاب کنیم:

 NotifyIcon در سی شارپ

این ابزار یک مشخصه ای دارد بنام آیکون , آیکونی را برای آن در نظر می گیریم:

 NotifyIcon در سی شارپ

نحوه کد نویسی:

داخل رویداد کلیک آن می نویسیم

private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)

{
WindowState = FormWindowState.Normal;

//این خط به این معناست که وضعیت فرم را حالت اولیه برگردان

}

برنامه را اجرا می کنیم، ملاحظه می کنید آیکونی که برای NotifyIcon در نظر گرفتم داخل سیستم ترای قرارگرفته است

 NotifyIcon در سی شارپ

 NotifyIcon در سی شارپ

حالا وقتی فرمم را مینی مایز می کنم روی آیکونی که داخل سیستم ترای است کلیک کنم فرمم را به حالت اولیه برمی گرداند.

 

در این جلسه با 4 کنترل ProgressBar و ContextMenuStrip و NotifyIcon و تب کنترل در سی شارپ آشنا شدیم. امیدواریم هر کدام را خوب یاد گرفته باشید و بتوانید از آن ها در برنامه هاتون استفاده کنید.