Динамическое создание визуальных компонентов

Довольно часто возникает необходимость создания динамически изменяющихся интерфейсов, путем добавления и удаления определенных компонентов.

Дата: 20.08.2009 г.

Рейтинг: 0

Метки:

Пошаговая инструкция:
Теперь создаем массив компонентов в C# для WindowsFormAplication, для WPF думаю будет немного позже.

Решение:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void myClickFunction(object sender, EventArgs e)
        {
            

        }

        private void button1_Click(object sender, EventArgs e)
        {
            Button []myBtn = new Button[5];
            for (int i = 0; i < 5; i++)
            {
                myBtn[i] = new Button();
                myBtn[i].Location = new Point(20, 25 * (i + 1));
                myBtn[i].Text = "button " + Convert.ToString(i);
                myBtn.Click += new EventHandler(myClickFunction);
                panel1.Controls.Add(myBtn[i]);
            }
            
        }


    }
}


Внешний вид:
Динамическое создание визуальных компонентов


Описание:

За создание нашего массива отвечает button1 и в частности процедура button1_Click. Первой строчкой (Button []myBtn = new Button[5]) создаем массив из 5-ти элементов, мотом идет цикл для обработки каждого из элементов данного массива:
myBtn[i] = new Button(); - создаем кнопку
myBtn[i].Location = new Point(20, 25 * (i + 1)); - задаем ее позицию
myBtn[i].Text = \"button \" + Convert.ToString(i) ; - подписываем кнопу
myBtn.Click += new EventHandler(myClickFunction); - указываем функцию для кнопки
panel1.Controls.Add(myBtn[i]); - указываем на чем будет жить наша кнопка.

Все довольно просто, удачных проб!

С уважением, Сургай Владимир.



Похожие статьи: