2010-01-10 2 views
1

개체가 거의없는 Employee 클래스 (ID, 이름, 나이)가 있습니다. ListView 컨트롤을 사용하여 "Employee View"폼의 모든 레코드를 보여주고 사용자가이 레코드를 추가/편집/삭제할 수 있도록합니다. 새 레코드를 추가하거나 기존 레코드를 편집하려면 별도의 양식을 사용하십시오. (데이터베이스 상호 작용이 없으며이 변경 사항을 유지하기위한 목록이 있습니다.)ListView 열 사용자 지정 (추가/제거) 허용 및 레코드 추가/편집 (WinForm)

이제 사용자 정의 가능한 열 수 (기본적으로 열 표시)를 사용하여이 설정 (Employee View => Add/Edit Employee)을 지원하고 싶습니다. 내 Employee 객체의 필드 당). 따라서 사용자가 더 많은 정보 (예 : DoB)를 보내려는 경우 ListView에 해당 열을 추가 할 수 있어야하고 직원 양식에 각 열에 대해 하나의 적절한 컨트롤 (DoB의 경우 DateTimePicker)이 표시되어야합니다. 원하는 레코드를 추가/편집하십시오.

미리 감사드립니다.

답변

0

메모리에서 표준 WinForms ListView 컨트롤은 기본 제공 데이터 바인딩을 제공하지 않습니다. 바운드 모드에서 DataGridView를 사용하는 것이 더 낫다고 제안합니다. 그러면 데이터 소스의 필드가 DataGridView의 열로 자동 표시되는 기능을 사용할 수 있습니다.

DataGridView는 또한 행에 대한 기본 제공 편집 기능을 제공합니다. 이 편집은 DataGridView 자체에서 "현재 위치"이므로 특정 유형의 응용 프로그램에 이상적이지 않을 수 있습니다. 그러나 ReadOnly 및 AllowUserToAddRows 속성을 사용하여 내부 편집을 비활성화하고 필요할 경우 별도의 추가/편집 양식을 계속 표시 할 수 있습니다.

추가/수정 양식에서 데이터 소스의 필드 수에 따라 양식에 동적으로 컨트롤을 추가하는 것이 일반적인 방법입니다. 여기에는 컨트롤을 코드로 작성하고 위치 및 형식 속성을 설정 한 다음 Form.Controls.Add()에 전달하는 작업이 포함됩니다. 이 필드를 직접 입력하거나 Simple Data Binding을 사용할 수 있습니다.

관련 문제