.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); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д