c# - 윈도우 위치 기억. 파일에 저장 로드
C# / 2020. 6. 20. 22:41
enum SAVEDATA {SD_WIN_left,SD_WIN_top, SD_MAX }; Int32[] m_save_data = new Int32[(Int32)SAVEDATA.SD_MAX]; const string m_file = "data.sav"; long GetFileSize(string file) { try { FileInfo fi = new System.IO.FileInfo(file); return fi.Length; } catch (Exception e) { return 0; } } void LoadData() { long size=GetFileSize(m_file); if (size > 0) { using (BinaryReader f = new BinaryReader(File.Open(m_file, FileMode.Open))) { byte[] bytes = new byte[m_save_data.Length * sizeof(Int32)]; f.Read(bytes, 0, bytes.Length); Buffer.BlockCopy(bytes, 0, m_save_data,0, bytes.Length); f.Close(); } } } void SaveData() { using (BinaryWriter f = new BinaryWriter(File.Open(m_file, FileMode.Create))) { byte[] bytes = new byte[m_save_data.Length * sizeof(int)]; Buffer.BlockCopy(m_save_data, 0, bytes, 0, bytes.Length); f.Write(bytes, 0, bytes.Length); f.Close(); } } private void Form1_Load(object sender, EventArgs e) { LoadData(); StartPosition = FormStartPosition.Manual; SetDesktopLocation(m_save_data[(int)SAVEDATA.SD_WIN_left], m_save_data[(int)SAVEDATA.SD_WIN_top]); } private void Form1_FormClosed(object sender, FormClosedEventArgs e) { m_save_data[(int)SAVEDATA.SD_WIN_left] = Location.X; m_save_data[(int)SAVEDATA.SD_WIN_top]= Location.Y; SaveData(); }
'C#' 카테고리의 다른 글
c# - textbox 마우스휠로 값 증가, 감소 (1) | 2020.06.20 |
---|---|
C# - 화면 갱신 Invalidate Update Refresh (0) | 2020.06.20 |
C# - 다른 폼(Form)의 버튼 동작 (0) | 2020.06.20 |
c# - 이벤트 추가방법 (0) | 2020.06.13 |
c# 매크로 기능은 있지만, 없는거나 마찬가지이다. (0) | 2020.06.06 |