private void cblT_ItemCheck(object sender, ItemCheckEventArgs e) { if (e.NewValue == CheckState.Checked) { Arguments.Temp1Directories[e.Index].Checked = true; } else { Arguments.Temp1Directories[e.Index].Checked = false; } if (Arguments.Temp1Directories.Count(c => c.Checked) > 1) { for (int i = 0; i < cbl2.CheckedItems.Count; i++) { ChiaDirectory chiaDirectory = (ChiaDirectory)cbl2.CheckedItems[i]; var index = cbl2.Items.IndexOf(chiaDirectory); cbl2.SetItemCheckState(index, CheckState.Unchecked); } cbl2.Enabled = false; } else { cbl2.Enabled = true; } }
private void GetLocalDisk(BindingList <ChiaDirectory> directories, BindingList <ChiaDirectory> temp1Directories, BindingList <ChiaDirectory> temp2Directories) { try { var drivers = DriveInfo.GetDrives().Where(c => c.DriveType != DriveType.CDRom); //移除 for (int i = directories.Count - 1; i >= 0; i--) { ChiaDirectory chiaDirectory = directories[i]; if (drivers.All(c => c.Name != chiaDirectory.DriveName)) { directories.Remove(chiaDirectory); } } for (int i = temp1Directories.Count - 1; i >= 0; i--) { ChiaDirectory chiaDirectory = temp1Directories[i]; if (drivers.All(c => c.Name != chiaDirectory.DriveName)) { temp1Directories.Remove(chiaDirectory); } } for (int i = temp2Directories.Count - 1; i >= 0; i--) { ChiaDirectory chiaDirectory = temp2Directories[i]; if (drivers.All(c => c.Name != chiaDirectory.DriveName)) { temp2Directories.Remove(chiaDirectory); } } //添加 foreach (DriveInfo driveInfo in drivers) { if (directories.All(c => c.DriveName != driveInfo.Name)) { ChiaDirectory chiaDirectory = new ChiaDirectory(); chiaDirectory.DriveName = driveInfo.Name; chiaDirectory.Checked = true; directories.Add(chiaDirectory); } if (temp1Directories.All(c => c.DriveName != driveInfo.Name)) { ChiaDirectory tempDirectory = new ChiaDirectory(); tempDirectory.DriveName = driveInfo.Name; temp1Directories.Add(tempDirectory); } if (temp2Directories.All(c => c.DriveName != driveInfo.Name)) { ChiaDirectory tempDirectory = new ChiaDirectory(); tempDirectory.DriveName = driveInfo.Name; temp2Directories.Add(tempDirectory); } } //设置最终目录选定状态 for (int i = 0; i < directories.Count; i++) { cblD.SetItemChecked(i, directories[i].Checked); } } catch (Exception exception) { SetMessage(exception.Message + exception.StackTrace, MessageType.Error); } }