Listbox 컨트롤 사용 :
1) 제어 특성
항목
선택된 시합
selectiomodes
2) 데이터 바인딩
DataSoure
DisplayMember
Valuemenber
3) 예
다음은 위의 ListBox 컨트롤 사용을 하나씩 설명하기 시작합니다.
먼저, 제어 속성에 대해 이야기 해 봅시다.
(1) 항목 :이 속성을 사용하여 목록 제어 항목의 속성을 얻으십시오. 이 속성은 목록 컨트롤에서 선택한 항목을 결정하는 데 사용될 수 있습니다. 항목을 추가 할 때는 디자인 중에 정적으로 또는 코드에서 동적으로 추가 할 수 있습니다. 설계 시간에 추가 된 항목을 표시하지 않으려면 코드에 this.listbox1.items.clear ()를 추가 할 수 있습니다. 코드에 추가 된 옵션 만 표시됩니다.
(2) SelectedItems : ListBox에 현재 선택된 항목이 포함 된 컬렉션을 가져옵니다.
(3) selectiomodes : ListBox에서 항목을 선택하는 데 사용되는 메소드를 얻거나 설정하십시오. 선택해야 할 네 가지 값이 있습니다. 기본값은 선택 mode.one이며 하나만 선택할 수 있습니다. 속성 값은 선택할 수 없습니다. 속성이 다중 확장 된 경우, Shift 키 또는 Shift 키 및 화살표 키 (위, 아래, 왼쪽 및 오른쪽) 중 하나를 클릭하면서 마우스를 클릭하면 선택한 컨텐츠가 이전 선택 항목에서 현재 항목으로 확장됩니다. 마우스를 클릭하는 동안 Ctrl 키를 누르면 목록에서 항목을 선택하거나 선택하지 않습니다. 속성이 다중 단순으로 설정되면 스페이스 바를 클릭하거나 누르면 목록에서 항목을 선택하거나 선택하지 않습니다.
다음으로 데이터 바인딩에 대해 이야기 해 봅시다. 일반적으로 데이터는 가변적이므로 데이터 바인딩이 필요합니다. 데이터 바인딩에는 여러 유형이 있습니다. 하나는 데이터베이스에서 얻은 데이터 가능 또는 데이터 세트를 바인딩하는 것입니다. 다른 하나는 클래스를 사용자 정의하여 사용자 정의 클래스에서 데이터를 바인딩하는 것입니다. C#의 데이터 바인딩과 ASP.NET의 데이터 바인딩 사이에는 약간의 차이가 있습니다. ASP.NET에서 데이터를 바인딩 한 후 Databind 메소드를 호출해야하지만 C#에서는 필요하지 않습니다. DisplayMember는 표시 할 속성을 가져 오거나 설정합니다.
마지막으로 그림과 같이 예를 들어 봅시다.
몇 가지 중요한 방법의 구현에 대해 이야기 해 봅시다. 따라서 특정 코드는 여기에 기록되지 않습니다. 왼쪽 테두리에 옵션을 오른쪽 테두리에 넣습니다. 암호:
코드 사본은 다음과 같습니다.
for (int i = this.listbox1.selecteditems.count -1; i> = 0; i-)
{
메뉴 메뉴 = (메뉴) this.listbox1.SelectedItems [i];
this.listbox2.items.add (메뉴);
this.listbox1.items.remove (i);
}
위의 함수가 구현되었지만 문제가 있습니다. 즉, 왼쪽의 항목은 오른쪽에 도달 한 후 역 순서가됩니다. 이것은 우리가 추가를 작성하고 별도로 이동하는 데 필요한 코드입니다. 코드입니다.
코드 사본은 다음과 같습니다.
for (int i = 0; i <this.listbox1.selecteditems.count; i ++)
{
메뉴 메뉴 = (메뉴) this.listbox1.SelectedItems [i];
this.listbox2.items.add (메뉴);
}
for (int i = this.listbox1.SelectedItems.count-1; i> = 0; i-)
{
this.listbox1.items.remove (i);
}
지금까지 상자에서 처음 몇 개 항목을 선택할 때 오른쪽을 이동하는 데 아무런 문제가 없지만 다음 몇 가지 항목을 선택할 때 다음 몇 가지 항목이 오른쪽 상자로 이동하고 처음 몇 개의 항목이 왼쪽 상자 밖으로 이동한다는 또 다른 문제가 있습니다. 이 문제의 이유는 우리가 할 것이기 때문입니다
선택된 시합 및 항목은 혼란스러워합니다. 이것은 많은 초보자가하는 실수입니다. 암호: