Improved text search

This commit is contained in:
Alexander 2019-09-28 22:54:34 +03:00
parent 353951cad7
commit 3b9b930667

View file

@ -1565,7 +1565,7 @@ private void CloseToolbar_MouseLeave(object sender, EventArgs e)
/*Toolbar*/
/*Search Panel*/
#region Search Panel
private void SearchTextBox_TextChanged(object sender, EventArgs e)
{
findPos = 0;
@ -1575,40 +1575,46 @@ private void SearchTextBox_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Escape)
{
SearchTextBox.Text = "";
SearchPanel.Visible = false;
RichTextBox.Focus();
RichTextBox.DeselectAll();
searchTextBox.Text = "";
searchPanel.Visible = false;
richTextBox.Focus();
richTextBox.DeselectAll();
e.Handled = e.SuppressKeyPress = true;
findPos = 0;
}
if (e.KeyCode == Keys.Enter & searchPanel.Visible & searchTextBox.Text != "")
{
FindNextButton_Click(this, new EventArgs());
e.Handled = e.SuppressKeyPress = true;
}
}
private void CloseSearchPanel_Click(object sender, EventArgs e)
{
FindToolStripMenuItem_Click(this, new EventArgs());
FindMainMenu_Click(this, new EventArgs());
}
private void CloseSearchPanel_MouseHover(object sender, EventArgs e)
{
CloseSearchPanel.Image = Properties.Resources.close_b;
closeSearchPanel.Image = Properties.Resources.close_b;
}
private void CloseSearchPanel_MouseLeave(object sender, EventArgs e)
{
CloseSearchPanel.Image = Properties.Resources.close_g;
closeSearchPanel.Image = Properties.Resources.close_g;
}
private void MatchCaseCheckBox_CheckedChanged(object sender, EventArgs e)
private void CaseSensitiveCheckBox_CheckedChanged(object sender, EventArgs e)
{
findPos = 0;
RichTextBox.DeselectAll();
richTextBox.DeselectAll();
}
private void WholeWordCheckBox_CheckedChanged(object sender, EventArgs e)
{
findPos = 0;
RichTextBox.DeselectAll();
richTextBox.DeselectAll();
}
private void FindText(string text, RichTextBoxFinds findOptions)
@ -1617,15 +1623,16 @@ private void FindText(string text, RichTextBoxFinds findOptions)
{
try
{
findPos = RichTextBox.Find(SearchTextBox.Text, findPos, findOptions);
findPos = richTextBox.Find(searchTextBox.Text, findPos, findOptions);
if (findPos == -1)
{
findPos = 0;
searchTextBox.Focus();
return;
}
RichTextBox.Focus();
RichTextBox.Select(findPos, SearchTextBox.Text.Length);
findPos += SearchTextBox.Text.Length + 1;
richTextBox.Focus();
richTextBox.Select(findPos, searchTextBox.Text.Length);
findPos += searchTextBox.Text.Length + 1;
}
catch
{
@ -1633,33 +1640,34 @@ private void FindText(string text, RichTextBoxFinds findOptions)
}
}
}
private void FindNextButton_Click(object sender, EventArgs e)
{
if ((!WholeWordCheckBox.Checked) & (!MatchCaseCheckBox.Checked))
if ((!wholeWordCheckBox.Checked) & (!caseSensitiveCheckBox.Checked))
{
FindText(SearchTextBox.Text, RichTextBoxFinds.None);
FindText(searchTextBox.Text, RichTextBoxFinds.None);
return;
}
if (WholeWordCheckBox.Checked & MatchCaseCheckBox.Checked)
if (wholeWordCheckBox.Checked & caseSensitiveCheckBox.Checked)
{
FindText(SearchTextBox.Text, RichTextBoxFinds.MatchCase | RichTextBoxFinds.WholeWord);
FindText(searchTextBox.Text, RichTextBoxFinds.MatchCase | RichTextBoxFinds.WholeWord);
return;
}
if (MatchCaseCheckBox.Checked)
if (caseSensitiveCheckBox.Checked)
{
FindText(SearchTextBox.Text, RichTextBoxFinds.MatchCase);
FindText(searchTextBox.Text, RichTextBoxFinds.MatchCase);
return;
}
if (WholeWordCheckBox.Checked)
if (wholeWordCheckBox.Checked)
{
FindText(SearchTextBox.Text, RichTextBoxFinds.WholeWord);
FindText(searchTextBox.Text, RichTextBoxFinds.WholeWord);
return;
}
}
/*Search Panel*/
#endregion
#region Debug Menu