void ReplaceDialogOnReplaceAll(object sender, EventArgs args) { ReplaceDialog dlg = sender as ReplaceDialog; string str = txtbox.Text; strFindWhat = dlg.FindWhat; strReplaceWith = dlg.ReplaceWith; strcomp = dlg.MatchCase ? StringComparison.Ordinal : StringComparison.OrdinalIgnoreCase; int index = 0; while (index + strFindWhat.Length < str.Length) { index = str.IndexOf(strFindWhat, index, strcomp); if (index != -1) { str = str.Remove(index, strFindWhat.Length); str = str.Insert(index, strReplaceWith); index += strReplaceWith.Length; } else { break; } } txtbox.Text = str; }
void ReplaceDialogOnReplace(object sender, EventArgs args) { ReplaceDialog dlg = sender as ReplaceDialog; strFindWhat = dlg.FindWhat; strReplaceWith = dlg.ReplaceWith; strcomp = dlg.MatchCase ? StringComparison.Ordinal : StringComparison.OrdinalIgnoreCase; if (strFindWhat.Equals(txtbox.SelectedText, strcomp)) { txtbox.SelectedText = strReplaceWith; } FindNext(); }
void ReplaceOnExecute(object sender, ExecutedRoutedEventArgs args) { ReplaceDialog dlg = new ReplaceDialog(this); dlg.FindWhat = strFindWhat; dlg.ReplaceWith = strReplaceWith; dlg.MatchCase = strcomp == StringComparison.Ordinal; dlg.Direction = dirFind; dlg.FindNext += FindDialogOnFindNext; dlg.Replace += ReplaceDialogOnReplace; dlg.ReplaceAll += ReplaceDialogOnReplaceAll; dlg.Show(); }