Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

C#, Winforms , программирование

Славик Лихобабин лихобабин Ученик (124), на голосовании 4 месяца назад
У меня уже есть код который создаёт панели на форме, как мне сделать так чтобы при нажатии кнопки на другой форме создавались эти объекты на первой
Код на второй форме с которой хочу добавлять кнопки
private void button3_Click(object sender, EventArgs e)
{
Form1 form1 = new Form1();
string quantity = numericUpDown2.Text;
int IntQuantuty = int.Parse(quantity);
for (int i = 0; i < IntQuantuty; i++)
{
Panel panel = new Panel();
// Устанавливаем свойства панели
panel.Width = 100;
panel.Height = 50;
panel.Location = new Point(30, 30 + i * 55);
panel.BackColor = Color.DimGray;

// Добавляем панель на форму
form1.Controls.Add(panel);

// Добавляем панель в список
panels.Add(panel);
}
Голосование за лучший ответ
Андрей Панарин Искусственный Интеллект (249316) 5 месяцев назад
Для этого другая форма должна иметь ссылку на первую форму.
Вы можете передать эту ссылку в качестве аргумента при вызове конструктора другой формы.
Но тогда придется переписать конструктор другой формы, чтобы он принимал параметром эту ссылку и запоминал ее в каком-нибудь приватном поле.
После этого можно будет работать с этим полем в классе другой формы.
Славик Лихобабин лихобабинУченик (124) 5 месяцев назад
private Form1 _form1;

List<Panel> panels = new List<Panel>();
public Индикатор(Form1 form1)
{
InitializeComponent();
_form1 = form1;
this.TopLevel = true;
this.TopMost = true;
}
форма в которой нужно создать объект
private void button3_Click_1(object sender, EventArgs e)
{
Form1 form1 = new Form1();
Индикатор newForm = new Индикатор(form1);
newForm.Show();
}
Я как-то неправильно передаю ссылку?
Андрей Панарин Искусственный Интеллект (249316) Сейчас значение поля _form1 вообще нигде не используется. Вам точно нужно при нажатии button3 создавать новую Form1?
Похожие вопросы