Exemple #1
0
        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;
            }
        }
Exemple #2
0
        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);
            }
        }