Кнопка для очистки цвета

При нажатии на Clear должно откатывать цвета в исходное положение. Как её реализовать?

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
using System.IO;

namespace GUISymbolCodes
{
    /// <summary>
    /// Description of MainForm.
    /// </summary>
    public partial class MainForm : Form
    {
        Pen myPen = new Pen(Color.Gray);
        SolidBrush bgBrush=new SolidBrush(Color.Green);
        SolidBrush pixelBrush=new SolidBrush(Color.Aqua);
        Int32 rectWidth=80;
        byte[,] BitMap= new byte[8,8];
        
        public MainForm()
        {

            //
            // The InitializeComponent() call is required for Windows Forms designer support.
            //
            InitializeComponent();
            for(int i=0;i<8;++i)
                for(int j=0;j<8;++j)
                    BitMap[i,j]=0;
        }
        void MainFormPaint(object sender, PaintEventArgs e)
        {
            Graphics gdev=e.Graphics;
            SolidBrush currentBrush;
            for(int i=0;i<8;++i)
                for(int j=0;j<8;++j)
                {
                    currentBrush = bgBrush;
                    if (BitMap[i,j]==1)
                    {
                        currentBrush = pixelBrush;
                    }
                    gdev.FillRectangle(currentBrush, i*rectWidth,  j* rectWidth, rectWidth, rectWidth);
                    gdev.DrawRectangle(myPen, i*rectWidth,  j* rectWidth, rectWidth, rectWidth);
                }

        }
        void MainFormClick(object sender, EventArgs e)
        {
//          e.
//          var local = new Point(e.X ,e.Y);
//          MessageBox.Show(local.ToString());
//            base.OnMouseClick(e);
        }
        void MainFormMouseClick(object sender, MouseEventArgs e)
        {
            var local = new Point(e.X ,e.Y);
            SolidBrush currentBrush=bgBrush;
            Graphics gdev=Graphics.FromHwnd(this.Handle);
            int i=e.X/rectWidth,j=e.Y/rectWidth;
//          MessageBox.Show(local.ToString()+" i="+i.ToString()+" j="+j.ToString());
            if(i>7||j>7)
                return;
            if(BitMap[j,i]==0)
            {
                BitMap[j,i]=1;
                currentBrush=pixelBrush;
            }
            else
            {
                BitMap[j,i]=0;
                currentBrush=bgBrush;
            }
            gdev.FillRectangle(currentBrush, i*rectWidth,  j* rectWidth, rectWidth, rectWidth);
            gdev.DrawRectangle(myPen, i*rectWidth,  j* rectWidth, rectWidth, rectWidth);
            GetHexCode();
        }
        void GetHexCode()
        {
            UInt64 res=0,marker=1;
            for(int i=0;i<8;++i)
                for(int j=0;j<8;++j)
                {
                  res+=BitMap[i,j]*marker;
                  if(i==7&&j==7)
                    break;
                  marker*=2;
                }
            hexFild.Text=res.ToString("X16");
        }
        void SaveButtonClick(object sender, EventArgs e)
        {
            SaveFileDialog MyFileDlg = new SaveFileDialog();
            MyFileDlg.DefaultExt = ".fw";
            MyFileDlg.Filter = "fw data file (*.fw) *.fw|";
            if (MyFileDlg.ShowDialog() == DialogResult.OK)
            {
              MessageBox.Show(MyFileDlg.FileName+" "+hexFild.Text);
              StreamWriter fwStream=new StreamWriter(MyFileDlg.FileName);
//              fwStream.Write("Firmware:");
              fwStream.Write(hexFild.Text);
              fwStream.Close();
            }
        }
        
    

       
    }
}

Ответы (1 шт):

Автор решения: KuzCode

Что конкретно вам надо, я не знаю. Вы просто предоставили код без пояснений.

Если вам нужно менять цвета на форме, то вот как это сделать:

Для начала, вам нужно как-то хранить стандартные настройки цветов. Это можно сделать, к примеру, создав словарь, в котором ключём будет тег объекта, а значением - его цвет.

После этого вам надо определиться, где хранить эти данные. Вы можете хранить их в настройках Settings.settings или в отдельном файле, например xml, или в реестре, или как вам угодно.

Далее нужно эти настройки как-то подгрузить, тут всё зависит от места сохранения.

И уже после этого вы можете сделать реализацию смены цветов. Это может быть функция которая перебирает все объекты на форме и смотрит, есть ли такой же тег как у текущего объекта в словаре, если да - изменяет цвет на цвет из словаря.

→ Ссылка