کنترل TabControl

کنترل TabContorl به شما اجازه می دهد که برای پنجره های خود سربرگ (Tab) بسازید،شما در برنامه های زیادی این نوع پنجره ها را مشاهده کرده اید.برای مثال پنجره ی Properties فایلها و سربرگ های برنامه ی Visual Studio.
tabcontrol-01tabcontrol-02
TabControl می تواند حاوی کنترل های دیگر باشد. با کلیک بر روی هر سربرگ (Tab) می توانید محتویات آنرا مشاهده کنید. ظاهر یک سربرگ فعال با دیگر سربرگ ها متفاوت است ، بنابراین شما می توانید متوجه شوید که کدام یک از سربرگ ها فعال است.زمانی که شما بر روی یک سربرگ کلیک می کنید ، کنترل هایی که به آن تعلق دارند نمایش داده می شوند. TabControl به شما اجازه می دهد که یک فرم را در داخل سربرگهای مختلف سازماندهی کنید ، به طوری که هر سربرگ یک دسته را نمایش دهد. برای مثال،می توانید یک فرم که حاوی اطلاعات شخصی را در سربرگ Personal Info و پیش زمینه ی آموزشی را در سربرگ Educational Background قرار دهید.
برای اضافه کردن یک کنترل TabContorl ، به قسمت Containers در جعبه ابزار ( ToolBox) رفته و کنترل TabControl را بر روی فرم قرار دهید. می توانید سایز این کنترل را تغییر دهید اما بهترین راه استفاده از خاصیت Dock است ، که باعث می شود تمام فضای فرم اشغال شود. به پنجره ی خواص (Properties) رفته و خاصیت Dock را پیدا کنید.بر روی نوار کرکره ای کلیک کرده و سپس دکمه ی وسط (Middle) را انتخاب کنید. این گزینه به این معناست که می تواند تمام فرم را پر کند.(به شکل زیر توجه کنید)
tabcontrol-03
TabControl شامل کنترلهای TabPage است ، که هر کدام از آنها شامل سربرگ و اجزای مخصوص به خودشان هستند.این کنترل ها توسط خاصیت TabPages از کنترل TabControl مورد دستیابی قرار می گیرند. در جدول زیر لیستی از خاصیت های مفید کنترل TabPage را مشاهده می کنید.

خاصیت توضیح
Controls کنترل هایی که در داخل TabPage وجود دارند.
ImageIndex اندیس تصویری که برای Tabpage انتخاب می شود را تعیین می کند.
Text متنی که در دکمه ی سربرگ نمایش داده می شود.

برای اضافه کردن یک TabPage ( سربرگ صفحه ای ) ، می توانید بر روی فلش کوچک که در قسمت بالا و راست TabControl وجود دارد کلیک کنید. با زدن این دکمه یک منو باز می شود که به وسیله ی آن شما می توانید Tab ها اضافه و یا حذف کنید.
tabcontrol-04
روش دیگر ، استفاده از پنجره ی Properties رفته و خاصیت TabPages می باشد. برای باز کردن TabPages Collection Editor ابتدا مطمئن شوید که کنترل TabControl فعال است سپس بر روی دکمه در کنار خاصیت TabPages کلیک کنید.
tabcontrol-05
پنجره TabPage Collection Editor به شما اجازه می دهد که TabPage های مختلفی را ایجاد یا حذف کرده و خواص مربوط به هرکدام از آنها را تغییر دهید. هر TabPage می تواند در برگیرنده ی کنترل های مخصوص به خود باشد. به عنوان مثال چندین کنترل را به سربرگ اول مانند شکل زیر اضافه کنید سپس بر روی سربرگ دیگر کلیک کرده و کنترل های دیگری را به آن اضافه نمایید.
tabcontrol-06
حال اجازه دهید در مورد خود TabControl توضیح دهیم.در زیر برخی از خواص مهم این کنترل ذکر شده اند :

خاصیت توضیح
Alignment ناحیه ای که Tab ها بر اساس آن تراز بندی می شوند.مقدار پیشفرض آن top است.
Appearance ظاهر Tab ها را تعیین می کند.
ImageList شامل لیستی از عکس هایی است که می توانید برای هر سربرگ تعیین کنید.
ItemSize اندازه tab را تعیین می کند.
Multiline به شما اجازه می دهد tab ها را در چندین سطر نمایش دهید.هنگامی کاربرد دارد که تعداد tab ها زیاد باشد.
SelectedIndex اندیس tab جاری را تعیین می کند.
SelectedTab Tab جاری را تعیین یا بر می گرداند.
TabCount تعداد tab های کنترل را بر میگرداند.
TabPages به شما اجازه مدیریت(حذف و اضافه کردن) tab ها را می دهد.

خاصیت Alignment مکان قرار گیری tab ها را تعیین می کند. در حالت پیشفرض مقدار این خاصیت برابر top است که باعث نمایش tab ها در بالای tabcontrol می شود.خاصیت Appearance شکل ظاهری tab ها را تعیین می کند.این خاصیت سه مقدار Normal(پیشفرض) ، Buttons(نمایش tab ها به شکل دکمه) ، FlatButtons(نمایش tab ها به شکل دکمه های مسطح) . حالت های مختلف این 3 مقدار را در شکل زیر نمایش داده شده است.
tabcontrol-07
خاصیت ImageList به شما اجازه می دهد که برای هر tab آیکونی را مشخص کنید.این خاصیت به یک کنترل ImageList ارجاع دارد.کنترل ImageList در این خاصیت که به طور مشابه در کنترل های دیگری مانند TreeView هم و منو ها وجود دارد مورد استفاده قرار می گیرد.به طور خلاصه نحوه ی استفاده از این کنترل برای نمایش عکس در TabControl را توضیح می دهیم.یک کنترل ImageList را از جعبه ابزار بر روی فرم قرار دهید.این کنترل شمای ظاهری ندارد و در قسمت کنترل های غیر بصری(Component tray) قرار می گیرد.ImageList از دو عکس زیر استفاده می کند.
img1img2
این دو عکس را بر روی قسمتی از هارد خود ذخیره و سپس بر روی کنترل ImageList کلیک کنید.خاصیت Images را از پنجره ی Properties پیدا کنید و بر روی دکمه کنار آن کلیک کنید.با کلیک بر روی این دکمه پنجره ی Image Collection Editor نمایش داده می شود.
tabcontrol-08
بر روی دکمه ی Add برای اضافه کردن یک عکس کلیک کنید.برای هر دو عکسی که قبلا بر روی هارد ذخیره کرده اید این مرحله را تکرار کنید و در آخر بر روی دکمه ی OK کلیک کنید.سپس خاصیت ImageList از کنترل TabControl را پیدا کرده و ارجاع این کنترل را به آن نسبت دهید. برای قرار دادن عکس ها در کنار هر tab روی tab مورد نظر کلیک کرده و سپس در پنجره ی Properties خاصیت ImageIndex آن را پیدا کنید.حال بر روی دکمه ی پایین افتادنی کنار آن کلیک و عکس مورد نظر خود را انتخاب نمایید.برای چند tab مختلف می توانید عکس مشابه ای را انتخاب کنید.
tabcontrol-09
برای تغییر اندازه ی هر تب آن را انتخاب کنید و خاصیت ItemSize آنرا تغییر دهید.این کار زمانی مفید است که اندازه عکس های کناری tab بسیار بزرگ باشد. اگر تعاد tab ها کنترل بسیار زیاد و از اندازه ی عرض فرم بیشتر باشد ، دکمه های فلش دار در سمت راست و بالای tabcontrol نمایش داده می شوند و شما می توانید با استفاده از آنها به تب های دیگر دسترسی یابید.
tabcontrol-10tabcontrol-11
برای نمایش tab ها در چند سطر می توانید از خاصیت MultiLine استفاده کنید.
tabcontrol-10

خاصیت TabPages به شما اجازه حذف یا اضافه کردن tab ها را می دهد.در زیر با کدنویسی tab ها مختلفی را ایجاد کرده و به کنترل اضافه می کنیم.

TabPage tab1 = new TabPage("Tab 1");
TabPage tab2 = new TabPage("Tab 2");
TabPage tab3 = new TabPage("Tab 3");
tabControl1.TabPages.Add(tab1);
tabControl1.TabPages.Add(tab2);
tabControl1.TabPages.Add(tab3);

خصوصیت TabPages دارای نوع TabPageCollection است که مجموعه ای از اشیا TabPage می باشد.بنابراین شما می توانید از متد های عمومی مانند Add ، Remove ، AddRange استفاده کنید. برای تعیین تب جاری می توان از خصوصیت SelectedIndex استفاده کرد.این خصوصیت اندیس tab جاری را تعیین می کند.

MessageBox.Show("The selected tab is " + tabControl1.TabPages[tabControl1.SelectedIndex].Text);

خصوصیت SelectedTab شی tab جاری را تعیین یا بر می گرداند.

TabPage selectedTab = tabControl1.SelectedTab;
MessageBox.Show("The selected tab is " + selectedTab.Text);

خصوصیت TabCount تعداد تب های کنترل را بر می گرداند. وقتی که در بین tab های مختلف حرکت می کنید رویداد SelectedIndexChanged اتفاق می افتد. کنترل TabControl زمانی مفید است که فرم از قسمت های مختلفی تشکیل شده باشد و فضای کافی در اختیار نداشته باشید.به عنوان یک مثال زمانی که برنامه دارای قسمتی برای تعیین تنظیمات خود باشد می توانید از این کنترل استفاده کنید.

لطفا اگر نظر، پیشنهاد و یا انتقادی در باره مطلب بالا دارید در قسمت زیر و اگر سوالی دارید در بخش پرسش و پاسخ مطرح بفرمایید.

  1. مژگان پاسخ دادن

    سلام ممنون بسیار عالی بود

  2. یونس ابراهیمی پاسخ دادن

    سلام ٰ خواهش می کنم

  3. منیره پاسخ دادن

    سلام. ممنون از لطفتون

    • یونس ابراهیمی پاسخ دادن

      خواهش میکنم….سایت بنده رو به دوستاتون معرفی بفرمایید

  4. محسن پاسخ دادن

    عالی بود

  5. علی پاسخ دادن

    خیلی عالی و کاربردی بود.

  6. saman پاسخ دادن

    سلام واقعا ممنونم .مهندس جا نچطوری جدول بانکم رو به tabcontrol وصل کنم در سی شارپ؟؟

    • یونس ابراهیمی پاسخ دادن

      سلام، خواهش می کنم
      ممنون میشم سوالتونو توی بخش پرسش و پاسخ مطرح بفرمایید

  7. مهدی پاسخ دادن

    بهترین سایت اموزش سی شارپ در ایران