When restarted, it does not deserialize old files.
namespace Prog_1 { public partial class XMLForm : Form { Array Arr = new Array(); public int[] array1; private bool flag; Font myFont; public XMLForm() { InitializeComponent(); LoadFont(); Font = myFont; } private void LoadFont() { PrivateFontCollection private_font = new PrivateFontCollection(); private_font.AddFontFile("archangelsk_regular.ttf"); myFont = new Font(private_font.Families[0], 15); } private void XMLForm_Load(object sender, EventArgs e) { dataGridView1.DefaultCellStyle.BackColor = Color.AliceBlue; dataGridView1.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; dataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; } private void btnClose_Click(object sender, EventArgs e) { Close(); } private void btnGen_Click(object sender, EventArgs e) { btnSaveF1.Enabled = true; btnSaveF2.Enabled = true; dataGridView1.Rows.Clear(); textBox1.Text = ""; Arr.N = (int)nudN.Value; Arr.A = (int)nudA.Value; Arr.B = (int)nudB.Value; Arr.RandomArray(out array1, out flag); if (flag) { for (int i = 0; i < (int)nudN.Value; i++) { try { textBox1.Text = textBox1.Text + array1[i].ToString(); textBox1.Text = textBox1.Text + " "; dataGridView1.Rows.Add(); dataGridView1.Rows[i].Cells[0].Value = i; dataGridView1.Rows[i].Cells[1].Value = array1[i]; } catch (Exception e1) { MessageBox.Show(e1.Message); } } } else { nudA.Value = 0; nudB.Value = 0; } } private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { } private void btnSaveF1_Click(object sender, EventArgs e) { Arr.mass = array1; Arr.Serialization(Arr); } private void btnReadF1_Click(object sender, EventArgs e) { Arr.Deserialization(Arr); textBox1.Text = ""; dataGridView1.Rows.Clear(); nudN.Value = Arr.N; nudA.Value = Arr.A; nudB.Value = Arr.B; for (int i = 0; i < Arr.mass.Length; i++) { try { textBox1.Text = textBox1.Text + Arr.mass[i].ToString(); textBox1.Text = textBox1.Text + " "; dataGridView1.Rows.Add(); dataGridView1.Rows[i].Cells[0].Value = i; dataGridView1.Rows[i].Cells[1].Value = Arr.mass[i]; } catch (Exception e1) { MessageBox.Show(e1.Message); } } } private void btnSaveF2_Click(object sender, EventArgs e) { } private void btnReadF2_Click(object sender, EventArgs e) { } } } namespace Prog_1 { [Serializable] public class Array { public int N { get; set; } public int A { get; set; } public int B { get; set; } public int[] mass {get;set;} public Array() { N = 0; A = 0; B = 0; } // public bool Flag { get; set; } public void RandomArray(out int[] array,out bool Flag) { array = new int[N]; Flag = true; Random rand = new Random(); if (A <= B) { for (int i = 0; i < array.Length; i++) array[i] = rand.Next(A, B + 1); } else { MessageBox.Show("Неправильный диапазон, введите заново"); Flag = false; } } public void Serialization(object E) { try { SaveFileDialog saveFileDialog1 = new SaveFileDialog(); saveFileDialog1.Filter = "XML|*.xml"; if (saveFileDialog1.ShowDialog() == DialogResult.OK) { // передаем в конструктор тип класса XmlSerializer formatter = new XmlSerializer(typeof(Array)); // получаем поток, куда будем записывать сериализованный объект using (FileStream fs = new FileStream(saveFileDialog1.FileName, FileMode.Create)) { //Array t = new Array(); formatter.Serialize(fs, E); } } } catch (Exception ex) { MessageBox.Show(ex.Message); } } public void Deserialization(object E) { try { OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "XML|*.xml"; if (ofd.ShowDialog() == DialogResult.OK) { XmlSerializer formatter = new XmlSerializer(typeof(Array)); // десериализация using (FileStream fs = new FileStream(ofd.FileName, FileMode.Open)) { E = (Array)formatter.Deserialize(fs); } } } catch (Exception ex) { MessageBox.Show(ex.Message); } } } }
LoadFont()procedure isLoadFont()related to deserialization. As well as thedataGridView1field. - VladD