.NET 3.x динамическое создание объектов класса - C#

Узнай цену своей работы

Формулировка задачи:

Пишу программу которая при нажатие кнопки будет кидать на форму изображение, описал всё это в классе но так как таких изображений будет много я решил создать массив объектов, при запуске прога просто зависает и предлагает найти решение проблемы в интернете, помогите исправить может реализовать это другим методом
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 WindowsFormsApplication1
{

    public partial class Form2 : Form
          
    {
        wall[] Wall = new wall[50];
        public int NumberSOfWall;
        public Form2()
        {
            InitializeComponent();
            for (int i = 0; i < 50 ; i++ ) {Wall[i]=new wall(); }
            NumberSOfWall = 0;
        }
 
        private void Form2_Load(object sender, EventArgs e)
        {
 
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
 
            Wall[NumberSOfWall].newWall();
            NumberSOfWall++;
        }
    }

    public class wall : Form2
    {
 
        public int NumberOfWall = 0;
        public string NewNameWall = "";
        public Image wall1;
        public PictureBox pbox;
        public wall() { }
        public void newWall()
        {
 
            NewNameWall = "wall" + NumberOfWall;
            NumberOfWall++;
            wall1 = Image.FromFile("pict/wall.png");
            pbox = new PictureBox();
            pbox.Image = wall1;
            /*   pbox.Left = a++;
               pbox.Top = b++;*/
            pbox.Visible = true;
            this.Controls.Add(pbox);
        }
 
    }

}

Решение задачи: «.NET 3.x динамическое создание объектов класса»

textual
Листинг программы
public partial class Form2 : Form
    {
        public string NewNameWall = "";
        public int NumberOfWall;
        public List<PictureBox> _pboxes = new List<PictureBox>();
        OpenFileDialog openFileDialog1 = new OpenFileDialog();
 
        public Form2()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            openFileDialog1.Multiselect = false;
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                if (string.IsNullOrEmpty(openFileDialog1.FileName) ||
                    !File.Exists(openFileDialog1.FileName))
                    return;
 
                var pbox = new PictureBox { Image = Image.FromFile(openFileDialog1.FileName), Visible = true };
                _pboxes.Add(pbox);
                NewNameWall = "wall" + _pboxes.Count;
                Controls.Add(pbox);
            }
        }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.231 из 5
Похожие ответы