我有一個檢查列表,當程序加載時,我需要加載一個字符串和布爾列表清單框。不過,雖然有區分用戶檢查和編程檢查
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[]
包含您的初始化過程中分配假對應迪爾斯陣列