c# добавление кнопок в форму

304
19 марта 2018, 22:51

Есть форма она разделена на 2 части. В левой создана кнопка. В правой tablelayoutpanel.При нажатии на кнопку должна заполняться tablelayoutpanel определённым количеством кнопок. К этим кнопкам добавить действие по клику и т.д. Как реализовать?

Answer 1

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

Answer 2

Вот пример создания кнопок, разберите его для понимания, и адаптируйте код под свои нужды.

public partial class Form1:Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        int _count = 0;
        Point location = new Point(0, 0);
        private void button1_Click(object sender, EventArgs e)
        {
            Button firstButton = new Button();
            firstButton.Name = "firstButton" + _count.ToString();
            firstButton.Text = "Button" + location.X.ToString() + ", " + location.Y.ToString();
            firstButton.Size = new System.Drawing.Size(100, 25);
            firstButton.Left = location.X;
            firstButton.Top = location.Y;
            firstButton.UseVisualStyleBackColor = true;
            firstButton.Click += firstButtons_Click;
            panel1.Controls.Add(firstButton);

            if (_count == 5)
            {
                _count = 0;
                location = new Point(location.X + firstButton.Width);
            }
            else
            {
            _count++;
            location = new Point(location.X, location.Y + firstButton.Height);
            }
        }
        private void firstButtons_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            MessageBox.Show("You pressed the button " + btn.Text);
        }
    }
Answer 3

Придумал реализовать вот так.Буду рад конструктивным предложениям.Location хотелось бы по другому...По dock например.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Diagnostics;
namespace Test
{
public partial class Form1 : Form
{
    public Button b1 = new Button();
    public Button b2 = new Button();
    public Form1()
    {
        InitializeComponent();
    }
    private void button1_Click(object sender, EventArgs e)
    {
        Button b = (Button)sender;
        Button b1 = new Button();
        Button b2 = new Button();
        b1.Text = "1";
        b2.Text = "2";
        b1.Width = b.Width;
        b2.Width = b.Width;
        b1.Location = new Point(b.Location.X + b.Width + 10, b.Location.Y);
        b2.Location = new Point(b.Location.X + b.Width + 10, b.Location.Y+20);
        b1.Click += new EventHandler(b1_Click);
        b2.Click += new EventHandler(b2_Click);
        this.Controls.Add(b1);
        this.Controls.Add(b2);
    }
    public void b1_Click(object sender, EventArgs e)
    {
        Process.Start(@"C:\Program Files (x86)\Microsoft Office\Office12\Excel.exe");
    }
    public void b2_Click(object sender, EventArgs e)
    {
        Process.Start(@"C:\Program Files (x86)\Microsoft Office\Office12\WINWORD.exe");
    }
}
}
READ ALSO
CodeDom Compiler подключение ссылки

CodeDom Compiler подключение ссылки

Как подключить ссылку к создаваемому приложению? К примеру SystemManagement

178
Проблемы с авторизацией VkNet

Проблемы с авторизацией VkNet

Сегодня начались проблемы с авторизацией, ранее всё работало, в чём причина ?

168
Связь ComboBox и TextBox в WPF

Связь ComboBox и TextBox в WPF

Есть ComboBox и несколько TextBox:

208
PlayerPrefs не сохраняет структуру

PlayerPrefs не сохраняет структуру

Ломаю голову не могу понять в чем дело , почему структура выдает везде Null а остальное сохраняется !

227