Здесь вы создаете новый экземпляр формы:
Form1 f1 = new Form1();
Все свойства инициализируются их значениями по умолчанию (то есть строки равны нулю). Затем вы пытаетесь вызвать метод Replace
для свойства MainText
, равного null
, и получаете исключение:
f1.MainText.Replace(findMe, replaceMe);
Сначала необходимо инициализировать это свойство:
f1.MainText = "blablabla";
f1.MainText = f1.MainText.Replace(findMe, replaceMe);
UPDATE:
Когда вы создаете форму FindAndReplace, вы можете передать ее конструктору текущее значение текста:
public class Form1 : Form
{
protected void FindAndReplace_Click(object sender, EventArgs e)
{
var findAndReplaceForm = new FindAndReplaceForm(MainText.Text);
findAndReplaceForm.ShowDialog();
MainText.Text = findAndReplaceForm.NewText;
}
}
public class FindAndReplaceForm : Form
{
private readonly string _originalText;
public FindAndReplaceForm(string originalText)
{
_originalText = originalText;
}
public string NewText
{
get
{
return (_originalText ?? string.Empty).Replace(findMe, replaceMe);
}
}
}