private void DoFilter(SearchParameters sp) { foreach (DataGridViewRow row in grdResults.Rows) { var rowText = new StringBuilder(); foreach (DataGridViewCell cell in row.Cells) { rowText.Append(cell.Value); } var itemText = rowText.ToString(); //Check row text var match = Regex.IsMatch(itemText, sp.SearchString); //Check FileContents var filePath = Path.Combine(row.Cells["Directory"].Value.ToString(), row.Cells["Name"].Value.ToString()); if (!match && sp.SearchType == SearchType.FileContents && File.Exists(filePath)) { match = Utility.SearchContents(sp, filePath, out var _); } var selectMatch = (string)MultiThread.GetProperty(ddlFilterInclude, "Text"); if (match == (selectMatch == "Select Match")) { row.Selected = true; } } PostFilterUiCleanup(); }
private void AddLog(string message, LogType logType) { Color lineColor; switch (logType) { case LogType.Info: if (!_properties.LogInfo) { return; } lineColor = Color.Black; break; case LogType.Warning: if (!_properties.LogWarning) { return; } lineColor = Color.BlueViolet; _newWarnings = true; tabControl.Refresh(); break; case LogType.Error: if (!_properties.LogError) { return; } lineColor = Color.Red; _newErrors = true; tabControl.Refresh(); break; default: throw new ArgumentOutOfRangeException(nameof(logType), logType, null); } var preLength = int.Parse(MultiThread.GetProperty(rtbLog, "TextLength").ToString()); MultiThread.InvokeMethod(rtbLog, "AppendText", new object[] { $"\r\n {DateTime.Now} - " }); MultiThread.InvokeMethod(rtbLog, "AppendText", new object[] { message }); var postLength = int.Parse(MultiThread.GetProperty(rtbLog, "TextLength").ToString()); MultiThread.InvokeMethod(rtbLog, "Select", new object[] { preLength, postLength }); MultiThread.SetProperty(rtbLog, "SelectionColor", lineColor); switch (logType) { case LogType.Info: MultiThread.SetProperty(rtbLog, "SelectionColor", Color.Black); break; case LogType.Warning: MultiThread.SetProperty(rtbLog, "SelectionColor", Color.BlueViolet); break; case LogType.Error: MultiThread.SetProperty(rtbLog, "SelectionColor", Color.Red); break; default: throw new ArgumentOutOfRangeException(nameof(logType), logType, null); } MultiThread.InvokeMethod(rtbLog, "Select", new object[] { 0, 0 }); }