Focus() public method

Gives the ShellListView focus
public Focus ( Boolean isActiveCheck = true, Boolean isForce = false ) : void
isActiveCheck Boolean Require this application's MainWindow to be activate the control
isForce Boolean Force this to make the control active no matter what
return void
		private void ConditionallySelectFiles(ConditionalSelectData csd, ShellView ShellListView) {
			if (csd == null) return;

			//The following items are added
			var Matches_Name = new List<BExplorer.Shell._Plugin_Interfaces.IListItemEx>();
			var Matches_Size = new List<BExplorer.Shell._Plugin_Interfaces.IListItemEx>();
			var Matches_DateCreated = new List<BExplorer.Shell._Plugin_Interfaces.IListItemEx>();
			var Matches_DateLastModified = new List<BExplorer.Shell._Plugin_Interfaces.IListItemEx>();
			var Matches_LastAccessed = new List<BExplorer.Shell._Plugin_Interfaces.IListItemEx>();

			ShellListView.DeSelectAllItems();

			if (csd.FilterByFileName) {
				foreach (var item in ShellListView.Items) {
					var data = new FileInfo(item.ParsingName);
					string ToFind = csd.FileNameData.matchCase ? data.Name : data.Name.ToLowerInvariant();

					switch (csd.FileNameData.filter) {
						case ConditionalSelectParameters.FileNameFilterTypes.Contains:
							if (ToFind.Contains(csd.FileNameData.matchCase ? csd.FileNameData.query : csd.FileNameData.query.ToLowerInvariant())) Matches_Name.Add(item);
							break;
						case ConditionalSelectParameters.FileNameFilterTypes.StartsWith:
							if (ToFind.StartsWith(csd.FileNameData.query)) Matches_Name.Add(item);
							break;
						case ConditionalSelectParameters.FileNameFilterTypes.EndsWith:
							if (ToFind.EndsWith(csd.FileNameData.query)) Matches_Name.Add(item);
							break;
						case ConditionalSelectParameters.FileNameFilterTypes.Equals:
							if (ToFind == csd.FileNameData.query) Matches_Name.Add(item);
							break;
						case ConditionalSelectParameters.FileNameFilterTypes.DoesNotContain:
							if (!ToFind.Contains(csd.FileNameData.query)) Matches_Name.Add(item);
							break;
						case ConditionalSelectParameters.FileNameFilterTypes.NotEqualTo:
							if (ToFind != csd.FileNameData.query) Matches_Name.Add(item);
							break;
						default:
							break;
					}
				}
			}
			else {
				//Matches_Name.AddRange(shells.Where((x) => !Directory.Exists(x.ParsingName)));
			}

			if (csd.FilterByFileSize) {
				foreach (var item in Matches_Name) {
					var data = new FileInfo(item.ParsingName);
					switch (csd.FileSizeData.filter) {
						case ConditionalSelectParameters.FileSizeFilterTypes.LargerThan:
							if (data.Length > csd.FileSizeData.query1) Matches_Size.Add(item);
							break;

						case ConditionalSelectParameters.FileSizeFilterTypes.SmallerThan:
							if (data.Length < csd.FileSizeData.query1) Matches_Size.Add(item);
							break;

						case ConditionalSelectParameters.FileSizeFilterTypes.Equals:
							if (data.Length == csd.FileSizeData.query1) Matches_Size.Add(item);
							break;

						case ConditionalSelectParameters.FileSizeFilterTypes.Between:
							long largebound, smallbound;
							if (csd.FileSizeData.query2 > csd.FileSizeData.query1) {
								smallbound = csd.FileSizeData.query1;
								largebound = csd.FileSizeData.query2;
							}
							else if (csd.FileSizeData.query2 < csd.FileSizeData.query1) {
								smallbound = csd.FileSizeData.query2;
								largebound = csd.FileSizeData.query1;
							}
							else {
								if (data.Length == csd.FileSizeData.query1) Matches_Size.Add(item);
								break;
							}

							if (data.Length > smallbound && data.Length < largebound) Matches_Size.Add(item);
							break;

						case ConditionalSelectParameters.FileSizeFilterTypes.NotEqualTo:
							if (data.Length != csd.FileSizeData.query1) Matches_Size.Add(item);
							break;

						case ConditionalSelectParameters.FileSizeFilterTypes.NotBetween:
							long largebound2, smallbound2;
							if (csd.FileSizeData.query2 > csd.FileSizeData.query1) {
								smallbound2 = csd.FileSizeData.query1;
								largebound2 = csd.FileSizeData.query2;
							}
							else if (csd.FileSizeData.query2 < csd.FileSizeData.query1) {
								smallbound2 = csd.FileSizeData.query2;
								largebound2 = csd.FileSizeData.query1;
							}
							else {
								// they are the same, use Unequal code
								if (data.Length != csd.FileSizeData.query1) Matches_Size.Add(item);
								break;
							}

							if (data.Length < smallbound2 || data.Length > largebound2) Matches_Size.Add(item);
							break;

						default:
							break;
					}
				}
			}
			else {
				Matches_Size.AddRange(Matches_Name);
			}

			if (csd.FilterByDateCreated) 
				Matches_DateCreated.AddRange(!csd.FilterByDateCreated ? Matches_Size : DateFilter(Matches_Size, csd.DateCreatedData, x => x.CreationTimeUtc));

			if (csd.FilterByDateModified) 
				Matches_DateLastModified.AddRange(!csd.FilterByDateModified ? Matches_Size : DateFilter(Matches_DateCreated, csd.DateModifiedData, x => x.LastWriteTimeUtc));

			if (csd.FilterByDateAccessed) 
				Matches_LastAccessed.AddRange(!csd.FilterByDateAccessed ? Matches_DateLastModified : DateFilter(Matches_DateLastModified, csd.DateAccessedData, x => x.LastAccessTimeUtc));

			ShellListView.SelectItems(
				Matches_Name.
				Union(Matches_Size).
				Union(Matches_Size).
				Union(Matches_DateCreated).
				Union(Matches_DateLastModified).
				Union(Matches_LastAccessed
			).ToArray());
			ShellListView.Focus();
		}