2010-12-13 4 views
1

사용자가 원하는 순서대로 열 머리글을 이동 한 다음 해당 설정을 저장하여 사용자가 응용 프로그램에 로그인 할 때마다 동일하게 유지되도록 할 수 있습니다. 정적 헤더가없는 DataGrid가 있습니다. 그것의 헤더를 XML 파일에서 가져옵니다. 정적 헤더가 없으므로 데이터 그리드에 사용자 설정을 저장하는 방법은 무엇입니까? 감사합니다사용자 설정 저장에 관한 질문!

답변

2

http://msdn.microsoft.com/en-us/library/aa730869%28v=vs.80%29.aspx

하지만 비슷한 설정 파일, 설정 파일이라는 것을 다른 파일의 종류가있다. 여기에서는 응용 프로그램 전체 또는 사용자별로 설정을 정의 할 수 있습니다. 설정 파일의 AppSettings 섹션에 자체 파일이있는 것처럼 생각하면 appSettings를 이름뿐만 아니라 사용자 (또는 "응용 프로그램")에 키를 입력해야합니다. 나는 이것이 당신이 찾고있는 것이라고 생각합니다.

DataGridView의 레이아웃과 관련하여 많은 설정을로드하면 성능에 영향을 미칩니다. 파일 시스템에서 설정 파일을로드하고 모든 키 설정 값을 읽고 열 순서를 조정해야합니다.

편집 : 예에 대한 응답으로 네, 동적 열 이름과 함께 작동합니다. 설정을 올바르게 사용하도록 설계해야합니다. 그 일을하는 방법은 기둥이 어떻게 달라질 수 있는지에 달려 있습니다. 로컬 리 제이션의 경우, 소스 또는 정확히 같은 방식으로 소스가되는 열은 변환 또는 부서 전문 용어 용도에 대해 다른 이름을 가질 수 있습니다. 그런 다음 해당 열 소스의 상수 이름을 정의하고 설정에서 사용합니다. 사용자가 알려진 열 집합의 하위 집합을 선택할 수있는 경우 올바른 순서로 쉼표로 구분 된 열 이름 목록 인 단일 설정을 정의 해보십시오. 검색 할 때 목록의 각 열 이름을 DGV의 머리글과 일치 시키십시오. 둘 중 하나에 나타나지 않는 열에 대해 지능적입니다. 설정을 사용하여 열을 먼저 설정하고 창을 닫거나 앱을 종료 할 때 이름을 저장하면 누락/추가 열 이름의 시나리오를 쉽게 만들 수 없습니다. 그런 식으로 사용자가 새 앱의 첫 번째로드에서 보는 것은 지난 번에 종료했을 때와 동일한 순서로 정렬됩니다. 다시 말하지만, 실제 열 머리글 텍스트를 사용하지 않고 열 머리글 텍스트를 변경해야하는 경우 설정이 무효화되고 모든 사용자가 다시해야 할 것이기 때문에 불변의 ID를 사용하는 것이 좋습니다 - 그들의 열을 순서대로; 최악의 경우, 존재하지 않는 열 이름에 대해 유연하지 않으면 앱이 완전히 중단됩니다.

한 가지주의 사항 : 설정 파일은 응용 프로그램 설치에 로컬이므로 사용자가 응용 프로그램의 여러 인스턴스 (예 : 바탕 화면과 랩톱)를 사용하고 다음과 관계없이 동일한 레이아웃을 볼 것으로 예상 할 경우 로그인 할 때 설정 파일은 좋은 해결책이 아닙니다. 이 경우 데이터베이스와 같은 중앙 저장소에 사용자 기본 설정을 저장하고 로그인시 가져 오는 것이 더 나을 것입니다.

+0

고정 헤더가없는 경우이 기능이 작동합니까? –

+0

입력 해 주셔서 감사합니다. Heres 내 다른 생각 ... 정적 헤더를 만들고 다음 런타임에, 코드를 구문 분석하고 헤더가 실제로 거기에 있는지 확인하는 것이 좋습니다 것이겠습니까? –

+0

자세한 정보가 필요합니다. DGV를 가능한 모든 열로 초기화 한 다음 사용자가 표시하지 않으려는 항목을 제거하거나 숨겨야하는지 묻는 중입니다. 나는 안된다고 대답 할 것이다. 실행 속도가 느려질 수 있습니다 (열을 정적으로 정의한다고해서 그곳에 있다는 것을 의미하는 것은 아니며 디자이너 측면에서 코드를 실행하여 모든 열을 추가 할 수 있습니다). 나는 단순히 열없이 DGV를 정의한 다음 사용자 설정에 따라 프로그래밍 방식으로 열을 추가합니다. – KeithS