개발(IT)/DevExpress(WinForm)

DevExpress(WinForm) Layout 저장/불러오기

isony 2023. 11. 4. 12:19
반응형

1. DevExpress(WinForm) Layout save & restore(저장/불러오기)

- 개인 취향에 따른 Layout 내역을 저장했다가 다음실행때에 다시 불러와서 적용하기

(1) 방법

- 외부 파일에 저장하는 방법

- 윈도우 환경 Registry에 저장하는 방법

(2) Save(저장하기)

- 종료시점에 외부파일에 자동저장하기

< 기본명령 ( 외부 파일 ) >

string fileName = "gridlayout.xml";

콤포넌트이름.SaveLayoutToXml(fileName);

private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
   // 방법 1
   string fileName = "gridlayout.xml";
   gridView1.SaveLayoutToXml(fileName);
   
   // 방법 2
   barManager1.SaveLayoutToXml("toolbars.xml");
}

< 기본명령 ( Registry ) >

string regKey = "DevExpress\\XtraGrid\\Layouts\\MainLayout";

콤포넌트이름.SaveLayoutToRegistry(regKey);

private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
   string regKey = "DevExpress\\XtraGrid\\Layouts\\MainLayout";
   advBandedGridView1.SaveLayoutToRegistry(regKey);
}

(3) Restore (불러오기)

< 기본명령 ( 외부 파일 ) >

string fileName = "gridlayout.xml";

콤포넌트이름.RestoreLayoutFromXml(fileName);

private void MainForm_Load(object sender, EventArgs e)
{
   // 방법 1
   string fileName = "gridlayout.xml";
   if (File.Exists(fileName)) {
      gridView1.RestoreLayoutFromXml(fileName);
   }
   
   // 방법 2
   if (File.Exists("toolbars.xml")) {
      barManager1.RestoreLayoutFromXml("toolbars.xml");
   }
}

< 기본명령 ( Registry ) >

string regKey = "DevExpress\\XtraGrid\\Layouts\\MainLayout";

콤포넌트이름.RestoreLayoutFromRegistry(regKey);

private void MainForm_Load(object sender, EventArgs e)
{
   string regKey = "DevExpress\\XtraGrid\\Layouts\\MainLayout";
   advBandedGridView1.RestoreLayoutFromRegistry(regKey);
}

2. Button를 통한 Layout save & restore(저장/불러오기)

private void saveButton_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) {
    // Saves the layout to mylayout.xml.
    layoutControl1.SaveLayoutToXml("mylayout.xml");
}
private void loadButton_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) {
    // Restores the layout from mylayout.xml.
    layoutControl1.RestoreLayoutFromXml("mylayout.xml");
    int hiddenItemsCount = layoutControl1.HiddenItems.Count; // hiddenItemsCount = 1
}
반응형