دسته بندی مقالات
- بیشتر -محصولات
- بیشتر -آخرین مقالات
- بیشتر --
کنترل Splitter در سی شارپ
1404/07/25 -
کنترل WebBrowser در سی شارپ
1404/07/24 -
کنترل vScrollBar در سی شارپ
1404/07/23 -
کنترل treeView در سی شارپ
1404/07/22 -
کنترل trackBar در سی شارپ
1404/07/21 -
کنترل toolTip در سی شارپ
1404/07/20
کنترل Splitter در سی شارپ

مقدمه
در طراحی رابطهای کاربری ویندوزی با زبان C، کنترلهایی وجود دارند که تعامل مستقیم کاربر با چیدمان و اندازهی بخشهای مختلف فرم را ممکن میسازند.
یکی از این کنترلهای مهم، Splitter است.
کنترل Splitter در سیشارپ برای تقسیم ناحیههای فرم به دو بخش قابل تغییر اندازه استفاده میشود و به کاربر اجازه میدهد با کشیدن ماوس، ابعاد پنلها را مطابق نیاز خود تنظیم کند.
مفهوم Splitter در سیشارپ چیست؟
کنترل Splitter در محیط Windows Forms نوعی کنترل واسطه است که بین دو کنترل دیگر قرار میگیرد و امکان تغییر اندازهی پویا بین آنها را فراهم میسازد.
به عنوان مثال، اگر در فرم خود دو پنل (Panel1 و Panel2) دارید و میخواهید کاربر بتواند با ماوس، عرض یا ارتفاع آنها را تغییر دهد، کافی است Splitter را بین آنها قرار دهید تا رابط کاربری شما پویا و قابل تنظیم شود.
در حقیقت، Splitter مانند مرزی قابل جابهجایی میان دو بخش عمل میکند و بهصورت خودکار اندازهی هر دو بخش را هماهنگ میکند.
تفاوت Splitter و SplitContainer
ویژگی | SplitContainer | Splitter |
نوع کنترل | کنترل ساده و جداگانه | کنترل مرکب با دو پنل داخلی |
میزان کنترل | نیاز به تنظیم دستی Dock | دارای Panel1 و Panel2 از پیش ساخته |
امکانات ظاهری | سادهتر | پشتیبانی از SplitterFixed، Collapse و رویدادهای بیشتر |
کاربرد | پروژههای سبک و قدیمی | رابطهای مدرن و منعطفتر |
نحوه ایجاد Splitter در فرم در سیشارپ
در برنامهنویسی ویندوز فرمها (Windows Forms)، یکی از کاربردیترین ابزارها برای ایجاد رابطهای پویا و قابل تنظیم، کنترل Splitter است.
این کنترل به شما اجازه میدهد بخشهای مختلف یک فرم را از هم جدا کرده و به کاربر امکان دهید با کشیدن مرز میان آنها، اندازه هر بخش را به دلخواه تغییر دهد.
این قابلیت نهتنها تجربه کاربری را بهبود میبخشد بلکه طراحی رابطهای حرفهایتر و داینامیک را نیز ممکن میسازد.
در ادامه بهصورت کاملاً کاربردی، نحوهی ایجاد Splitter در فرم را بررسی میکنیم تا بتوانید آن را هم از طریق محیط طراحی (Design Mode) و هم با کدنویسی (Code Mode) پیادهسازی کنید.
۱. روش طراحی در محیط ویژوال استودیو
1. ابتدا دو کنترل مانند Panel را روی فرم قرار دهید.
2. Panel اول را در سمت چپ فرم قرار داده و خاصیت Dock آن را روی Left تنظیم کنید.
3. از قسمت Toolbox کنترل Splitter را انتخاب کنید و آن را بین دو پنل بکشید.
4. خاصیت Dock برای Splitter را نیز روی Left قرار دهید.
5. Panel دوم را اضافه کرده و خاصیت Dockآن را روی Fill تنظیم کنید.
اکنون هنگام اجرای برنامه، Splitter بهصورت خودکار بین دو بخش قرار میگیرد و با کشیدن آن میتوانید اندازهی پنلها را تغییر دهید.
۲. روش برنامهنویسی (کدنویسی در زمان اجرا)
در بسیاری از پروژههای پویا، ممکن است بخواهید Splitter را در زمان اجرا (Runtime) ایجاد کنید.
در این حالت، کافی است مراحل زیر را در کد خود بنویسید:
Panel leftPanel = new Panel();
leftPanel.Dock = DockStyle.Left;
leftPanel.Width = 180;
leftPanel.BackColor = Color.LightGray;
Panel rightPanel = new Panel();
rightPanel.Dock = DockStyle.Fill;
rightPanel.BackColor = Color.WhiteSmoke;
Splitter splitter = new Splitter();
splitter.Dock = DockStyle.Left;
splitter.MinSize = 100;
splitter.MinExtra = 100;
splitter.BorderStyle = BorderStyle.FixedSingle;
splitter.BackColor = Color.DarkGray;
splitter.TabStop = false;
this.Controls.Add(rightPanel);
this.Controls.Add(splitter);
this.Controls.Add(leftPanel);
🔹 نکته:
ترتیب افزودن کنترلها بسیار مهم است. ابتدا کنترل با Dock = Fill باید اضافه شود، سپس Splitter و در آخر پنل سمت چپ تا عملکرد صحیحی داشته باشند.
نحوه حذف Splitter یا غیرفعال کردن آن در سیشارپ
در فرایند توسعه نرمافزارهای ویندوزی، گاهی لازم است کنترل Splitter را از فرم حذف کنید یا برای حفظ ساختار ثابت رابط کاربری، قابلیت حرکت آن را غیرفعال نمایید.
این اقدام معمولاً در شرایطی کاربرد دارد که بخواهید از تغییر ناخواسته چیدمان توسط کاربر جلوگیری کرده یا Splitter را بهصورت موقت از چرخهی اجرا خارج کنید.
حذف کامل Splitter
اگر Splitter را در زمان اجرا ایجاد کردهاید، میتوانید با دو خط کد آن را حذف کنید:
this.Controls.Remove(splitter);
splitter.Dispose();
غیرفعال کردن قابلیت تغییر اندازه
برای جلوگیری از حرکت Splitter، کافی است آن را غیرفعال کنید:
splitter.Enabled = false;
اگر از SplitContainer استفاده میکنید، راهکار بهتر تنظیم خاصیت زیر است:
splitContainer1.IsSplitterFixed = true;
در این حالت Splitter همچنان قابل مشاهده است اما دیگر با ماوس حرکت نمیکند.
آیا به دنبال یک فرصت عالی برای یادگیری برنامهنویسی هستید؟ 🚀
با دوره آموزشی سیشارپ ما، شما میتوانید مهارتهای خود را به سطح جدیدی ارتقا دهید! این دوره بهطور کامل طراحی شده تا به شما کمک کند تا از مبتدی تا پیشرفته در دنیای برنامهنویسی سیشارپ پیش بروید.
👨🏫 چرا دوره ما را انتخاب کنید؟
- محتوای جامع و عملی: با پروژههای واقعی و تمرینات عملی، یادگیری را به تجربهای جذاب تبدیل کنید.
- مدرس مجرب: از تجربه و دانش مدرس حرفهای بهرهمند شوید که شما را در هر مرحله از یادگیری راهنمایی میکنند.
- پشتیبانی ۲۴/۷: هر زمان که سوالی داشتید، ما در کنار شما خواهیم بود تا به شما کمک کنیم.
- دسترسی مادامالعمر: به محتوای دوره دسترسی دائمی داشته باشید و هر زمان که خواستید، میتوانید به آن مراجعه کنید.
💡 فرصت را از دست ندهید!
بایادگیری سیشارپ، میتوانید در دنیای فناوری اطلاعات به یک متخصص تبدیل شوید و در پروژههای جذاب و چالشبرانگیز شرکت کنید.
همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آیندهای روشنتر بردارید!
مزایا و ویژگیهای کنترل Splitter در سیشارپ
کنترل Splitter در سیشارپ یکی از ابزارهای پرکاربرد برای طراحی رابطهای کاربری پویا و قابل تنظیم است.
این کنترل با فراهم کردن امکان تقسیمبندی هوشمند فرمها، به توسعهدهندگان اجازه میدهد محیطی منعطف، حرفهای و کاربرپسند ایجاد کنند.
در ادامه مهمترین مزایا وامکانات ویژه Splitter را مرور میکنیم:
مزایا
1. افزایش انعطافپذیری و تعامل در رابط کاربری
2. پیادهسازی ساده و قابل فهم برای برنامهنویسان
3. هماهنگی خودکار در تغییر اندازهی کنترلهای مجاور
4. مناسب برای نرمافزارهایی با ساختار پویا و قابل تنظیم
امکانات کنترل Splitter
ویژگی | توضیح |
Dock | تعیین محل قرارگیری Splitter در فرم |
MinSize | مشخص کردن حداقل اندازهی بخش اول |
MinExtra | تعیین حداقل اندازهی بخش دوم |
BorderStyle | تنظیم نوع و ضخامت حاشیه Splitter |
TabStop | حذف تمرکز از Splitter هنگام جابهجایی با کلید Tab |
BackColor | کنترل رنگ ظاهری نوار تقسیم |
Enabled | فعال یا غیرفعال کردن قابلیت تغییر اندازه |
نکات مهم در استفاده از Splitter در سیشارپ
برای دستیابی به عملکردی روان و طراحی رابط کاربری کارآمد، صرفاً اضافه کردن کنترل Splitter کافی نیست؛ بلکه باید از آن بهصورت اصولی و بهینه استفاده کرد.
رعایت چند نکتهی فنی و طراحی میتواند باعث شود Splitter در فرمهای شما هم از نظر ظاهری منسجمتر باشد و هم از نظر عملکردی کاراتر عمل کند.
در ادامه به مجموعهای از نکات حرفهای در استفاده از Splitter اشاره میکنیم:
1. همیشه مقدار MinSize و MinExtra را طوری تنظیم کنید که کنترلها از محدودهی منطقی خارج نشوند.
2. در طراحیهای حرفهای از ترکیب Splitter با Panel یا TreeView استفاده کنید تا ساختار ظاهری فرم زیباتر و منظمتر شود.
3. اگر ظاهر پیشفرض Splitter با تم گرافیکی برنامه همخوانی ندارد، از خاصیت BackColor برای تغییر رنگ آن استفاده کنید.
4. در پروژههای پیچیده یا سنگینتر، بهتر است از کنترل SplitContainer بهره بگیرید تا علاوه بر جداسازی بخشها، از رویدادهایی مانند SplitterMoved نیز استفاده کنید.
5. در صورت نیاز به چند بخش قابل تنظیم، میتوانید چند Splitter را بهصورت تودرتو به کار ببرید، اما حتماً ترتیب قرارگیری و ویژگی Dock هرکدام را دقیق تنظیم کنید.
مثال کاربردی: ساخت فرم دو بخشی با Splitter
فرض کنید میخواهید در سمت چپ فرم فهرستی از گزینهها (ListBox) و در سمت راست محتوای مرتبط با آن نمایش داده شود.
Splitter باید بین این دو بخش قرار گیرد تا کاربر بتواند اندازهی هر بخش را تنظیم کند.
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
CreateFormLayout();
}
private void CreateFormLayout()
{
ListBox listBox = new ListBox();
listBox.Dock = DockStyle.Left;
listBox.Width = 200;
listBox.Items.AddRange(new string[] { "گزینه ۱", "گزینه ۲", "گزینه ۳" });
Splitter splitter = new Splitter();
splitter.Dock = DockStyle.Left;
splitter.BackColor = Color.Gray;
splitter.MinSize = 100;
splitter.MinExtra = 150;
Panel contentPanel = new Panel();
contentPanel.Dock = DockStyle.Fill;
contentPanel.BackColor = Color.White;
this.Controls.Add(contentPanel);
this.Controls.Add(splitter);
this.Controls.Add(listBox);
}
}
در این مثال، Splitter بین ListBox و Panel قرار میگیرد و کاربر میتواند اندازهی ناحیهی فهرست را تغییر دهد.
پرسشهای کنترل Splitter در سی شارپ
1. آیا میتوان Splitter را قفل کرد تا کاربر نتواند آن را حرکت دهد؟
بله. اگر از SplitContainer استفاده میکنید، خاصیت IsSplitterFixed را برابر true قرار دهید تا Splitter غیرقابل حرکت شود.
2. بهترین روش برای طراحی رابطهای مدرن چیست؟
در پروژههای جدید، توصیه میشود از کنترل SplitContainer استفاده کنید، زیرا امکاناتی مانند رویدادهای حرکتی، collapse پنلها و کنترل بیشتر بر ظاهر را فراهم میکند.
نتیجهگیری
کنترل Splitter در سیشارپ یکی از ابزارهای کاربردی برای ایجاد فرمهای قابل تنظیم و تعاملی در محیط WinForms است.
در این مقاله، یاد گرفتیم چگونه Splitter را ایجاد، پیکربندی، حذف و غیرفعال کنیم، با ویژگیها و مزایای اصلی آن آشنا شدیم و در نهایت با مثالهای واقعی کاربرد آن را در فرمها مشاهده کردیم.
اگر میخواهید رابط کاربری نرمافزار شما پویا و کاربرپسند باشد، استفادهی هوشمندانه از Splitter یا SplitContainer میتواند گامی مؤثر در طراحی حرفهای و مدرن نرمافزارهای دسکتاپ محسوب شود.
دوره های مرتبط

آموزش برنامه نویسی سی شارپ
زبان شی گرایی حرفه ای سی شارپ یک زبان قدرتمند برای طراحی نرم افزار به شمار میرود.
999,000 تومان

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