한 번의 클릭으로 CheckListBox 항목을 확인하는 방법은 무엇입니까?


79

Windows Forms응용 프로그램을 C #으로 코딩 하고 CheckListBoxControl을 사용하고 있습니다.

한 번의 클릭으로 CheckListBox 항목을 확인하는 방법은 무엇입니까?

답변:


175

나는 당신이 찾고 있다고 생각합니다

CheckOnClick 속성

사실로 설정

항목을 선택할 때 확인란을 전환해야하는지 여부를 나타내는 값을 가져 오거나 설정합니다 .Gets or sets a value indicating whether the check box should be toggled when an item is selected.


2
checklistbox 컨트롤의 속성 창에서 찾을 수 있습니다.
rahul

8

이러한 방식으로 디자인 타임에 속성 설정

여기에 이미지 설명 입력

또는 코드 :

CheckedListBox.CheckOnClick = true;

3

디자이너를 통해 CheckOnClick을 True로 설정 한 문제를 방금 해결했지만 UI에서 항목을 확인하려면 두 번째 클릭이 여전히 필요했습니다. 내가 찾은 것은 어떤 이유로 든 값을 변경할 때 디자이너 파일이 업데이트되지 않는다는 것입니다. 해결하기 위해 디자이너 파일로 이동하여

this.Product_Group_CheckedListBox.CheckOnClick = true;

그 후 예상대로 작동했습니다. 디자이너가 업데이트하지 않은 이유는 확실하지 않지만이 해결 방법이 누군가에게 도움이 될 수 있습니다.


1

버튼을 클릭하거나 체크리스트를 클릭하여 모든 것을 확인할 수도 있습니다.

private void checkedListBox1_Click(object sender, EventArgs e)
{

    for (int i = 0; i < checkedListBox1.Items.Count; i++)
        checkedListBox1.SetItemChecked(i, true);

}

foreach 문을 사용하여 어떻게 할 수 있습니까?
Bryan

@Bryan은 이것을 시도하고 루프의 본문은 개체를 검사 목록 foreach (checkedListBox1.CheckedItems의 개체 항목)로 캐스팅합니다.
Adiii

루프에서 count 명령을 사용하는 것은 피해야합니다. 명령의 이름이 말합니다. 카운트는 시간을 사용하여 루프의 각 반복에서 목록의 항목을 계산합니다. 목록이 개수 만 지원하는 경우 다음을 사용합니다. int totalitems = checkedListBox1.Count; 그런 다음 for 루프에서 변수를 사용하십시오.
nivs1978 2017

1

CheckListBox 외부에있는 확인란을 사용하여 모든 항목을 선택 / 선택 취소 할 수도 있습니다. 같은 양식에서 CheckedListBox 근처에 확인란을 추가하고 이름을 CkCheckAll로 지정합니다. CheckBox에 대한 Click 이벤트를 추가합니다 (CheckChanged 이벤트보다 선호 함). CheckedListBox 옆에는 데이터베이스 테이블에 모든 선택된 항목을 추가하는 버튼 (BtnAdd)도 있습니다. CheckedListBox에서 하나 이상의 항목이 선택된 경우에만 활성화됩니다.

    private void CkCheckAll_Click(object sender, EventArgs e)
    {
        CkCheckAll.Text = (CkCheckAll.Checked ? "Uncheck All" : "Check All");
        int num = Cklst_List.Items.Count;
        if (num > 0)
        { 
            for (int i = 0; i < num; i++)
            {
                Cklst_List.SetItemChecked(i, CkCheckAll.Checked);
            }
        }
        BtnAdd_Delete.Enabled = (Cklst_List.CheckedItems.Count > 0) ? true : false;
    }
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.