MainForm.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. namespace PictureMover
  2. {
  3. public partial class MainForm : Form
  4. {
  5. private readonly CoverForm _form2;
  6. private static readonly string StateFile = Application.ExecutablePath + $".{nameof(MainForm)}.state.txt";
  7. public MainForm()
  8. {
  9. InitializeComponent();
  10. _form2 = new CoverForm(this);
  11. }
  12. private void Form_Shown(object sender, EventArgs e)
  13. {
  14. _form2.Show(this);
  15. Enter += Form_Enter;
  16. if (File.Exists(StateFile))
  17. {
  18. var state = File.ReadAllText(StateFile);
  19. var pars = state.Split(",")
  20. .Select(p => int.TryParse(p, out var v) ? (int?)v : null)
  21. .Where(p => p.HasValue)
  22. .Select(p => p.Value).ToArray();
  23. if (pars.Length == 4)
  24. {
  25. Left = pars[0];
  26. Top = pars[1];
  27. Width = pars[2];
  28. Height = pars[3];
  29. }
  30. }
  31. FormClosed += MainForm_FormClosed;
  32. }
  33. private void MainForm_FormClosed(object? sender, FormClosedEventArgs e)
  34. {
  35. var state = $"{Left},{Top},{Width},{Height}";
  36. File.WriteAllText(StateFile, state);
  37. }
  38. private void Form_Enter(object? sender, EventArgs e) => _form2.Focus();
  39. }
  40. }