/* * Formats the keyword textbox to create a list of each of the keywords it needs to seach for, * then finds out how often it appears in the text and adds it to the KeywordFrequencies list. */ private void GetKeywordsFromTextbox() { List <String> Keywords = new List <String>(); String[] KeywordsSplitted = Textbox_Keywords.getTextbox().Text.Split(','); KeywordFrequencies.Clear(); foreach (String keyword in KeywordsSplitted) { if (keyword.Trim() != String.Empty) { String FormattedKeyword = keyword.ToLower().Trim(); int Frequency = GetNumberOfKeywords(FormattedKeyword); if (RichTextbox_MainText.getTextbox().Text.ToLower().Contains(FormattedKeyword)) { KeywordFrequency NewKF; NewKF.Keyword = keyword.Trim(); NewKF.Frequency = Frequency; KeywordFrequencies.Add(NewKF); } ChangeColourOfKeywords(FormattedKeyword); } } AddKeywordsToListbox(); }
public MainForm() { InitializeComponent(); // Event whenever the text is changed, to know when the email has been edited by the user RichTextbox_MainText.getTextbox().TextChanged += new EventHandler(MainForm_RichTextbox_TextChanged); Listbox_SearchCount.getListBox().SelectedIndexChanged += new EventHandler(MainForm_SelectedIndexChanged); }
/* * Removes the red font on the keywords and clears the listbox of items. * Sets the previous email text to the current email text. */ private void MainForm_RichTextbox_TextChanged(object sender, EventArgs e) { if (RichTextbox_MainText.getTextbox().Text != PrevMainText) { Listbox_SearchCount.getListBox().Items.Clear(); SetMainTextDefaultColour(); PrevMainText = RichTextbox_MainText.getTextbox().Text; } }
/* * Removes all underlines in the textbox. */ private void RemoveMainTextUnderline() { int CaretPosition = RichTextbox_MainText.getTextbox().SelectionStart; RichTextbox_MainText.getTextbox().SelectAll(); RichTextbox_MainText.getTextbox().SelectionFont = RichTextbox_MainText.getTextbox().Font; RichTextbox_MainText.getTextbox().SelectionStart = CaretPosition; RichTextbox_MainText.getTextbox().SelectionLength = 0; }
/* * Sets all of the email text to a black font to remove any red font. */ private void SetMainTextDefaultColour() { int CaretPosition = RichTextbox_MainText.getTextbox().SelectionStart; RichTextbox_MainText.getTextbox().SelectAll(); RichTextbox_MainText.getTextbox().SelectionColor = Color.Black; RichTextbox_MainText.getTextbox().SelectionFont = RichTextbox_MainText.getTextbox().Font; RichTextbox_MainText.getTextbox().SelectionStart = CaretPosition; RichTextbox_MainText.getTextbox().SelectionLength = 0; }
/* * Changes the colour of the keywords found in the email text. */ private void ChangeColourOfKeywords(String Keyword) { Regex regex = new Regex(Keyword); int CaretPosition = RichTextbox_MainText.getTextbox().SelectionStart; foreach (Match match in regex.Matches(RichTextbox_MainText.getTextbox().Text.ToLower())) { RichTextbox_MainText.getTextbox().Select(match.Index, match.Length); RichTextbox_MainText.getTextbox().SelectionColor = Color.Red; } RichTextbox_MainText.getTextbox().SelectionStart = CaretPosition; RichTextbox_MainText.getTextbox().SelectionLength = 0; }
/* * Removes any previous underline in the textbox, then underlines the keywords found in the textbox. */ private void UnderlineSelectedKeyword(String Keyword) { RemoveMainTextUnderline(); Regex regex = new Regex(Keyword); int CaretPosition = RichTextbox_MainText.getTextbox().SelectionStart; Font textboxFont = RichTextbox_MainText.getTextbox().Font; foreach (Match match in regex.Matches(RichTextbox_MainText.getTextbox().Text.ToLower())) { RichTextbox_MainText.getTextbox().Select(match.Index, match.Length); RichTextbox_MainText.getTextbox().SelectionFont = new Font(textboxFont.FontFamily, textboxFont.Size, FontStyle.Underline);; } RichTextbox_MainText.getTextbox().SelectionStart = CaretPosition; RichTextbox_MainText.getTextbox().SelectionLength = 0; }
/* * Clears the text in the email textbox. */ private void Button_ClearMainText_Click(object sender, EventArgs e) { RichTextbox_MainText.getTextbox().Text = String.Empty; Listbox_SearchCount.getListBox().Items.Clear(); }
/* * Returns the number of times a keyword appears in the email text by splitting the string at the points * where it will have the keyword. This gives the number of times the keyword appears + 1. */ private int GetNumberOfKeywords(String Keyword) { String[] MainTextSplitted = RichTextbox_MainText.getTextbox().Text.ToLower().Trim().Split(new String[] { Keyword }, StringSplitOptions.None); return(MainTextSplitted.Length - 1); }