728x90
반응형
예전 홈페이지에 등록한 글을 각색해서 다시 등록해봅니다.
DevExpress를 사용하는 이유가 각종 콘트롤 및 그리드의 특화기능을 이용하기 위해서라고 생각합니다.
예전 비주얼 베이직 6.0보다 나만의 콘트롤 만들기가 난해해져서 상용 콘트롤을 택했던 것 같습니다.
이외에도 생각보다 많은 스킨을 제공하며 약간 디자이너의 도움을 받아야 겠지만 스킨 에디터를 제공해 나만의 스킨제작도 가능합니다. 스킨제작은 사용하는 모든 콘트롤의 색상 등을 조정해야 합니다. 뭐 기존 스킨을 가져와서 조금만 수정해 사용해도 될 것 같습니다.
오늘은 DevExpress에서 제공하는 스킨을 콤보박스에 가져오고 SelectIndexChanged() 이벤트를 이용해 폼에 스킨을 적용하는 방법을 알아보도록 하겠습니다. 적용 시 실행된 모든 폼에 적용이 됩니다.
using DevExpress.XtraEditors;
using DevExpress.Skins;
public frmConfig_Load() {
// 이벤트를 추가합니다.
comboBoxEdit1.SelectedIndexChanged += new EventHandler(comboBoxEdit1_SelectedIndexChanged);
// foreach 문을 이용해 스킨목록을 콤보박스에 추가
foreach(SkinContainer cnt in SkinManager.Default.Skins) {
comboBoxEdit1.Properties.Items.Add(cnt.SkinName);
}
}
void comboBoxEdit1_SelectedIndexChanged(object sender, EventArgs e) {
ComboBoxEdit comboBox = sender as ComboBoxEdit;
string skinName = comboBox.Text;
DevExpress.LookAndFeel.UserLookAndFeel.Default.SkinName = skinName;
}
요렇게 하면 콤보박스에서 스킨을 선택할 때마다 폼스킨이 변경하는 것을 보실 수 있습니다.
다음은 skinname을 설정파일에 저장했다고 가정하고 진입점에 스킨을 적용하는 방법입니다.
private void frmMain_Load(object sender, EventArgs e)
{
BonusSkins.Register();
SkinManager.EnableFormSkins();
UserLookAndFeel.Default.SetSkinStyle(Cfg.SystemBasic.SkinName);
UserLookAndFeel.Default.SkinName = Cfg.SystemBasic.SkinName;
}
frmMain 폼이 최초 진입 폼이라고 했을 때 Load() 이벤트에 위 코드를 넣어주시면 됩니다.
Cfg.SystemBasic.SkinName은 스킨이름을 저장한 설정값입니다.
반응형
'개발 > C# + DevExpress' 카테고리의 다른 글
[2021.10] XtraGrid 특정 Row의 컬럼 값 편집 여부를 설정하는 방법 (0) | 2021.10.22 |
---|---|
[2021.06] DevExpress XtraMessagebox 및 버튼의 폰트수정(v2) (0) | 2021.06.07 |
[2021.06] Devexpress Grid 등의 팝업메뉴 한글로 바꿀 수 없을까? (0) | 2021.06.04 |
[2021.04] Devexpress ComboBoxEdit 아이템에 Class Object 넣어서 처리하기 (0) | 2021.04.21 |
[2021.04] C# + DevExpress Grid에서 문자로 된 숫자 정렬하기 (0) | 2021.04.13 |