Мне жаль, если это кажется невероятно очевидным или очень часто задаваемым вопросом, но я уже некоторое время искал и просматривал сообщения, и я все еще не могу его получить.
Я просто изучаю С#, и я поставил себе небольшой проект, создав текстовый процессор вокруг элемента управления richtextbox с несколькими дополнительными функциями.
В настоящее время я просто добавляю возможность "Найти и заменить" текст, а приведенный ниже код работает при использовании в той же форме, что и элемент управления с большим текстовым полем.
richTextBox1.Rtf = richTextBox1.Rtf.Replace("bob", "bill");
Я не хочу использовать диалоговое окно или что-то подобное, я иду прямо от нашего старого друга VB6, хотя, поэтому я не уверен, что они все еще существуют как таковые, поэтому я делаю внешнюю форму, которая действует вроде как диалоговое окно, где я хотел бы, чтобы пользователь мог ввести текст, чтобы искать и заменять, а затем нажать "ОК" и вернуться к основной форме, звучит просто, да, возможно, я не знаю, что мне не хватает...
private void findReplaceToolStripMenuItem_Click(object sender, EventArgs e)
{
Form3 AboutBox = new Form3();
AboutBox.ShowDialog();
}
Я изо всех сил старался реализовать несколько ответов, которые я прочитал здесь, в одном из них мне удалось управлять формой1, но только если я открыл новый экземпляр с помощью form1.show();
после кода, который бесполезен в том, чего я пытаюсь достичь.
Я установил richTextBox1.Modifiers в Public, но я все еще царапаю голову над этим.
Вместо того чтобы сделать RichTextBox общедоступным, я бы добавил свойство в другую форму, которая возвращает текст из этого элемента управления, например:
public class SearchForm : Form
{
public string SearchTerm
{
get { return richTextBox1.Text; }
}
...
Когда пользователь закрывает форму поиска, вы можете получить поисковый запрос, указав свойство:
private void findReplaceToolStripMenuItem_Click(object sender, EventArgs e)
{
string searchTerm;
using (var searchForm = new SearchForm()) // used 'using' to dispose the form
{
searchForm.ShowDialog();
searchTerm = searchForm.SearchTerm;
}
// do something with searchTerm
}
Вы обнаружите, что это делает обслуживание более управляемым. Изменение имен элементов управления в одной форме не должно требовать внесения изменений в любую другую форму, которая их использует.