Я хочу сохранить все Drawstring, которые сделаны с кодами в нижней половине. Я сохраняю его, сохраняя «Точки» в виде списка. Цель сохранения заключается в том, что я хочу иметь возможность удалять конкретный чертеж. Все остальные рисунки будут сохранены, и будет удален только тот, который хочет удалить. Мой основной вопрос заключается в том, почему я не могу использовать тот же код с небольшим редактированием (верхняя половина кода - это код, который я использую для добавления новой Drawstring), которую я использую для рисования, чтобы перерисовать при удалении определенного чертежа.
Side_pictureBox.ImageLocation = AppDomain.CurrentDomain.BaseDirectory + @"pictures for app\Bus_Nearside.png";
Side_pictureBox.Image = Image.FromFile(AppDomain.CurrentDomain.BaseDirectory + @"\pictures for app\Bus_Nearside.png");
Bitmap bm = new Bitmap(Side_pictureBox.Image);
if (Tagged_Remarks_listBox.SelectedIndex == 0)
{
for (int x = 0; x <= NumberingPosition.Count - 1; x++)
{
if (x != 0)
{
using (Graphics gr = Graphics.FromImage(bm))
{
gr.SmoothingMode = SmoothingMode.AntiAlias;
Font drawFont = new Font("Calibri (Body)", 15);
SolidBrush drawBrush = new SolidBrush(Color.Blue);
//MessageBox.Show(Numbering[u] + NumberingPosition[u]);
gr.DrawString(Numbering[x], drawFont, drawBrush, NumberingPosition[x]);
}
}
Side_pictureBox.Image = bm;
Side_pictureBox.Invalidate();
}
// Выше кода, когда я впервые рисую строку, ниже кода перерисовать при удалении конкретного чертежа //
Bitmap bm = new Bitmap(Side_pictureBox.Image);
using (Graphics gr = Graphics.FromImage(bm))
{
gr.SmoothingMode = SmoothingMode.AntiAlias;
String drawString = numbering_for_digram.ToString();
Font drawFont = new Font("Calibri (Body)", 15);
SolidBrush drawBrush = new SolidBrush(Color.Blue);
gr.DrawString(drawString, drawFont, drawBrush, lastPoint);
Numbering.Add(drawString);
drawFont.Dispose();
drawBrush.Dispose();
}
Side_pictureBox.Image = bm;