Несколько изображений в picturebox
Я новичок в программировании и пытаюсь научиться этому самостоятельно.Поэтому я должен добавить 2 разных изображения в picturebox ( в данном случае стол и стул, которые связаны с 2 кнопками toolstripbuttons). Мне нужно разместить несколько столов и стульев, чтобы я мог их переместить или убрать после этого. Но когда я расставляю столы и хочу добавить стулья, мои столы исчезают.
Есть ли также способ сохранить расположение изображений в picturebox, чтобы при повторном открытии проекта размещенные изображения находились на своих предыдущих местах?
Что я уже пробовал:
Это основная форма
<pre>namespace WORKSPACE { public partial class Form1 : Form { public Form1() { InitializeComponent(); } SPACE space; enum OPTION { PLACE, REMOVE, REPLACE } OPTION OPTIONS = OPTION.PLACE; Image figure; private void Form1_Load(object sender, EventArgs e) { } private void pLACEToolStripMenuItem_Click(object sender, EventArgs e) { OPTIONS = OPTION.PLACE; } private void rEMOVEToolStripMenuItem_Click(object sender, EventArgs e) { OPTIONS = OPTION.REMOVE; } private void rEPLACEToolStripMenuItem_Click(object sender, EventArgs e) { OPTIONS = OPTION.REPLACE; } private void pictureBox1_MouseMove(object sender, MouseEventArgs e) { toolStripStatusLabel1.Text = "X:" + e.X.ToString() + "Y:" + e.Y.ToString(); } private void pictureBox1_MouseDown(object sender, MouseEventArgs e) { if (OPTIONS== OPTION.PLACE) { space.PLACE(e.X, e.Y); } else if (OPTIONS == OPTION.REPLACE) { space.REPLACE(e.X, e.Y); } else if (OPTIONS == OPTION.REMOVE) { space.REMOVE(e.X, e.Y); } } private void toolStripButton1_Click(object sender, EventArgs e) { figure = toolStripButton1.Image; space = new SPACE(pictureBox1.CreateGraphics(), figure); } private void toolStripButton2_Click(object sender, EventArgs e) { figure = toolStripButton2.Image; space = new SPACE(pictureBox1.CreateGraphics(), figure); } } } This is the class I created using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Drawing; namespace WORKSPACE { class SPACE { int COUNTER = 0; Graphics G; List<Rectangle> SPACES; Rectangle MOUSE; Boolean STATUSREPLACE = false; int SPACECOUNTER; int DUMMY; Image figure; public SPACE(Graphics g,Image f) { G = g; figure = f; SPACES = new List<Rectangle>(); } public void PLACE(int X, int Y) { COUNTER++; SPACES.Add(new Rectangle(X, Y, 20, 20)); DRAWSPACE(); } public void DRAWSPACE() { SPACETELLER = 1; G.Clear(Color.White); foreach (Rectangle r in SPACES) { G.DrawImage(figure,r.X,r.Y); SPACECOUNTER++; } } public void DRAWSPACECHAIR() { SPACECOUNTER = 1; G.Clear(Color.White); foreach (Rectangle r in SPACES) { G.DrawImage(figure, r.X, r.Y); SPACECOUNTER++; } } public void REPLACE(int X, int Y) { SPACECOUNTER = 1; MOUSE = new Rectangle(X, Y, 2, 2); foreach (Rectangle r in SPACES) { if (MOUSE.IntersectsWith(r)) { if (STATUSREPLACE == false) { SPACES.Remove(r); STATUSREPLACE = true; DUMMY = SPACECOUNTER; return; } } SPACECOUNTER++; } if (STATUSREPLACE == true) { SPACES.Insert(--DUMMY, new Rectangle(X, Y, 20, 20)); STATUSREPLACE = false; DRAWSPACE(); DRAWSPACECHAIR(); } } public void REMOVE(int X, int Y) { SPACECOUNTER = 1; MOUSE = new Rectangle(X, Y, 2, 2); foreach (Rectangle r in SPACES) { if (MOUSE.IntersectsWith(r)) { SPACES.Remove(r); break; } } DRAWSPACE(); DRAWSPACECHAIR(); } } }