Есть форма она разделена на 2 части. В левой создана кнопка. В правой tablelayoutpanel.При нажатии на кнопку должна заполняться tablelayoutpanel определённым количеством кнопок. К этим кнопкам добавить действие по клику и т.д. Как реализовать?
Проще всего задать все кнопки изначально , добавив их в форму , и скрыть их , в последствии активировать отображение каждой из них и изменять ее свойство программно .
Вот пример создания кнопок, разберите его для понимания, и адаптируйте код под свои нужды.
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);
}
}
Придумал реализовать вот так.Буду рад конструктивным предложениям.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");
}
}
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Как подключить ссылку к создаваемому приложению? К примеру SystemManagement
Сегодня начались проблемы с авторизацией, ранее всё работало, в чём причина ?
Ломаю голову не могу понять в чем дело , почему структура выдает везде Null а остальное сохраняется !