WinForm — экземпляр TableLayoutPanel

искусственный интеллект

Пример 1. Используйте TableLayoutPanel для создания таблицы

 

Объявить объект TableLayoutPanel

   /// <summary>

        /// TableLayoutPanel

        /// </summary>

TableLayoutPanel table = new TableLayoutPanel();

Добавьте элементы управления и события

  private void Form2_Load(object sender, EventArgs e)

        {

// добавляем строку данных по умолчанию

Table.Dock = DockStyle.Top;//Заполнение сверху

            panel1.Controls.Add(table);    

table.ColumnCount = 5;//5 столбцов

Table.Height = table.RowCount * 40;//Общая высота таблицы, 40 на строку

 

       

            table.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, table.Width * 0.2f));

            table.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, table.Width * 0.2f));

            table.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, table.Width * 0.2f));

            table.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, table.Width * 0.2f));

 

            for (int i = 1; i <= 10; i++)

            {

AddRow("Человек-клавиатура"+i.ToString().PadLeft(2,'0'),"Человек-паук" + i.ToString().PadLeft(2,'0'), "Железный человек" + i.ToString ( ).PadLeft(2, '0'), "Человек-свинья" + i.ToString().PadLeft(2, '0'), "Страница мертвой свиньи" + i.ToString().PadLeft(2, '0') ));

            }

        }

 

        private void AddRow(string apple, string orange, string banana, string casaba, string sugarcane)

        {

            try

            {

// динамически добавить строку

                table.RowCount++;

//Установите высоту, линия границы также считается высотой, поэтому измените 40, чтобы она была больше

                table.Height = table.RowCount * 44;

// высота строки

                table.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 40));

// Задаем стиль ячейки и добавляем строки

                table.CellBorderStyle = TableLayoutPanelCellBorderStyle.OutsetPartial;

 

                int i = table.RowCount - 1;

 

                Label label1 = new Label();

                label1.Text = apple;

                label1.Dock = DockStyle.Fill;

                label1.BackColor = Color.Red;

                label1.Click += Label1_Click;

Label1.Font = новый шрифт ("Kaiti", 13, FontStyle.Regular);

                label1.TextAlign = ContentAlignment.MiddleCenter;

                table.Controls.Add(label1, 0, i);

 

                Label label2= new Label();

                label2.Text = orange;

                label2.Width = 200;

                label2.Height = 40;

                label2.Click += Label1_Click;

label2.Font = новый шрифт ("Kaiti", 13, FontStyle.Regular);

                label2.TextAlign = ContentAlignment.MiddleCenter;

                table.Controls.Add(label2, 1, i);

 

                Label label3 = new Label();

                label3.Text = banana;

                label3.Width = 200;

                label3.Height = 40;

                label3.Click += Label1_Click;

label3.Font = новый шрифт ("Kaiti", 13, FontStyle.Regular);

                label3.TextAlign = ContentAlignment.MiddleCenter;

                table.Controls.Add(label3, 2, i);

                Label label4 = new Label();

                label4.Text = casaba;

                label4.Width = 200;

                label4.Height = 40;

                label4.Click += Label1_Click;

Label4.Font = новый шрифт ("Kaiti", 13, FontStyle.Regular);

                label4.TextAlign = ContentAlignment.MiddleCenter;

                table.Controls.Add(label4, 3, i);

                Label label5 = new Label();

                label5.Text = sugarcane;

                label5.Width = 200;

                label5.Height = 40;

                label5.Click += Label1_Click;

label5.Font = новый шрифт ("Kaiti", 13, FontStyle.Regular);

                label5.TextAlign = ContentAlignment.MiddleCenter;

                table.Controls.Add(label5, 4, i);

            }

            catch (Exception ex)

            {

MessageBox.Show(ex.Message.PadRight(30, ' '), "Подсказка", MessageBoxButtons.OK, MessageBoxIcon.Error);

            }

        }

 

        private void Label1_Click(object sender, EventArgs e)

        {

            Label label = (Label)sender;

            MessageBox.Show(label.Text);

        }

 

Пример 2, чтобы получить кросс-столбцовую таблицу

Добавьте объект панели в TableLayoutPanel, задайте для свойства ColumnSpan объекта панели значение 2, установите Marign на 0 и задайте для Dock значение Fill.