Табличный контейнер TableSplitControl

Немногим это действительно нужно, но все же я видел в сети массу запросов по поводу контрола, который бы, как стандартный TableLayoutPanel, мог являться табличным вместилищем других контролов, но, при этом, имел бы возможность изменять размеры строк и столбцов во время исполнения (в RunTime’е).
Мягко говоря, таких контролов в паблике нет. Однако, я предлагаю Вашему вниманию именно такой контрол и абсолютно бесплатно. Он, конечно, далек от совершенства в плане готовности к коммерческой эксплуатации (главным образом — по причине отсутствия дизайнера), но в большинстве задач — вполне пригоден.


Итак, ссылки:

Скриншот:

Скриншот TableSplitControl

Скриншот TableSplitControl

Пример использования:

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

admin опубликовано 2009-6-27 Рубрика: Контролы | Метки: , , , , , ,

Ответить

(Ctrl + Enter)