Здравствуйте, я новичок в C#, и у меня есть проблема с этим кодом. В последнем обработчике событий btnClear_Click мне нужно удалить динамически выделенные элементы массива элементов, которые я создал. Таким образом, в основном у меня есть основная форма, откуда я вызываю диалоговую форму, где вы, когда пользователь может выбрать номер, и когда вы вводите число, в основной форме вы получаете несколько кнопок, которые вы ранее вводили (если вы входите 4 вы получите 4 кнопки от 0 до 3). Может кто-то помочь мне с этим, потому что я не могу найти ответ в любом месте :( СпасибоКак удалить динамически выделенный массив C#
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;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
private Button[] btnNums;
private int digits, prevNum, lastNum;
public Form1()
{
InitializeComponent();
}
private void btnSetBase_Click(object sender, EventArgs e)
{
frmDialog frmDialogInput = new frmDialog();
DialogResult dResult =
frmDialogInput.ShowDialog(this);
if (dResult == DialogResult.OK)
{
digits = frmDialogInput.Base;
lblOutDigits.Text = digits.ToString();
lastNum = int.Parse(lblOutDigits.Text);
CreateBaseButtons(prevNum, lastNum);
prevNum = lastNum;
}
}
private void CreateBaseButtons(int prev, int number)
{
for (int i = 0; i < prev; i++)
btnNums[i].Dispose();
int x = 34, y = 70;
btnNums = new Button[number];
for(int j = 0; j < number; j++)
{
btnNums[j] = new Button();
btnNums[j].Location = new System.Drawing.Point(x, y);
btnNums[j].Name = "btn" + j;
btnNums[j].Size = new System.Drawing.Size(45, 23);
btnNums[j].Text = j.ToString();
btnNums[j].UseVisualStyleBackColor = true;
btnNums[j].Click += new System.EventHandler(btnNums_Click);
this.Controls.Add(btnNums[j]);
x += btnNums[j].Size.Width;
}
}
private void btnNums_Click(object sender, EventArgs e)
{
}
private void btnClear_Click(object sender, EventArgs e)
{
lblOutDigits.Text = " ";
}
}
}
... вы уже делаете, что в вашем другом методе. В частности, цикл, содержащий 'btnNums [i] .Dispose();' ... –
Tx I переместил его в обработчик события btnClear_Click и его работу. У меня, вероятно, будет больше вопросов об этой программе, потому что ее программа из 4 частей и я на второй части – Zile
@Zile Но, пожалуйста, тогда откройте новый вопрос. – DatRid