체크리스트가 있고 프로그램이로드되면 체크리스트 상자에 문자열 목록과 부울 목록을로드해야합니다. 그러나사용자 확인 및 프로그래밍 방식으로 확인
checkedListBoxControl1.SetItemChecked(i, checkedList[i]);;
checkedListBoxControl1_ItemCheck
- 이벤트 화재로 논리 값을 설정하는 동안. 나는 화재가 발생하면 데이터베이스를 새로 고치고 완료하는 데 오랜 시간이 걸리기 때문에 그것을 원하지 않습니다. 나는 사용자가 체크리스트를 바꿀 때만 발동하기를 원한다. 체크 상태.
참고 : 나는
이 목록 상자를 채우는 내 방법이 될 수 있음 현재 내가 그와 그 추악한을 할 수있는 플래그를 사용하고 있고 다른 여기 나에게
private void checkedListBoxControl1_ItemCheck(object sender, DevExpress.XtraEditors.Controls.ItemCheckEventArgs e) //fires second on check
{
int index = e.Index;
bool isChecked = e.State == CheckState.Checked;
this.mediaCenter.ItemManager.SetDirectoryCheck(index, isChecked);
if (this.IsUserClick)
BuildDatabaseAsync();
this.IsUserClick = false;
}
private bool IsUserClick;
private void checkedListBoxControl1_Click(object sender, EventArgs e) //Fires first on check
{
if (checkedListBoxControl1.SelectedItem == null) return;
IsUserClick = true;
}
을 많은 문제를 제공해야 통제가 처음에는 이상합니다. 그러나 경로를 따라 많은 원치 않는 변경으로 인해.
private void BuildCheckListControl(string[] dirs)
{
IsUserClick = false;
this.checkedListBoxControl1.DataSource = dirs;
for (int i = 0; i < dirs.Length; i++)
checkedListBoxControl1.SetItemChecked(i, checkedList[i]);
}
checkedList[]
이 초기화 중에 잘못된 할당 당신은 부울 변수를 가질 수 DIRS 배열