Табличный контейнер TableSplitControl
Немногим это действительно нужно, но все же я видел в сети массу запросов по поводу контрола, который бы, как стандартный TableLayoutPanel, мог являться табличным вместилищем других контролов, но, при этом, имел бы возможность изменять размеры строк и столбцов во время исполнения (в RunTime’е).
Мягко говоря, таких контролов в паблике нет. Однако, я предлагаю Вашему вниманию именно такой контрол и абсолютно бесплатно. Он, конечно, далек от совершенства в плане готовности к коммерческой эксплуатации (главным образом — по причине отсутствия дизайнера), но в большинстве задач — вполне пригоден.
Итак, ссылки:
- контрол: TableSplitControl.dll
- help (chm): TableSplitControl.chm
Скриншот:
Пример использования:
C#: | Select code |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | namespace Usings.RU { public partial class Form1 : Form { private readonly TableSplitPanel table; public Form1() { InitializeComponent(); SuspendLayout(); // На форме есть 4 контрола, которые нужно вставить в TableSplitPanel. // Соберем их в массив 2x2: Control[,] controls = new Control[2, 2] {{groupControl1, panelControl1}, {groupControl2, labelControl1}}; // Вызовем конструктор TableSplitPanel table = new TableSplitPanel(controls, new TableSplitControl.RowStyle[] { new TableSplitControl.RowStyle(SizeMode.Relative, 0.2), new TableSplitControl.RowStyle() }, new TableSplitControl.ColumnStyle[] { new TableSplitControl.ColumnStyle(SizeMode.Relative, 0.4), new TableSplitControl.ColumnStyle() }, BorderStyle.Fixed3D); table.Dock = DockStyle.Fill; // Можно задать названия панелей table.Panels[0, 0].Caption = "aasdasd"; table.Panels[1, 0].Caption = "Панель"; table.Panels[1, 1].Caption = "Контрол"; // Добавим TableSplitPanel на форму. Controls.Add(table); ResumeLayout(); } } } |
В рамках данной функциональности, лучшего контрола (и не только бесплатного) Вам не найти.
Удачного использования!
Обсуждение на форуме: http://usings.ru/forum/viewtopic.php?t=11