| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Разработка Windows Forms > Блокнот |
| Автор: Latitudes 9.7.2006, 21:51 | ||||||
| Я недавно изучаю С# и .NET. РАди пркатического эксперимента делаю блокнот. Вот и проблемка. Знакомы с его пунктом найти??)) Вот там вводишь что те надо и это находиться в тексте и выделяется... Есть две формы. Одна-сам блокнот..текст в textBox'е, вторая форма-"Найти" с textBox, двумя button'ами, ну ыобщем, ка кв блокноте...Было много вариантов как заставить из одной формы пеердавать данные в другую. Остановилась на том, что в первой форме сделала метод
А в событии Клик для кнопки "Найти":
А во второй форме в событии Клик для баттона "Найти далее":
Только получается то, что textBox.Text (в первой форме то бишь) пустой даже если текст там есть.. Подскажите как это лучше сделать.... |
| Автор: Tror 10.7.2006, 09:32 | ||||||||||
| Доброго времени суток. Я еще только начинаю постигать мир .NET, но попытаюсь помочь.
дело в том что твой код, насколько я понял, создает новый экземпляр формы Form1, а не использует уже существующий. По моему разумению надо делать так: переопределяем конструктор второй формы, чтоб он принимал в качестве параметра ссылку на вызывающую форму и создаем закрытый член класса refFm в котором будет храниться ссылка на вызвавшую форму
далее при создании экземпрляра второй формы предаем ей ссылку на вызывающую
а затем уже из второй формы делаем все что нам надо
P.S. Уважаемых гуру C# и .NET прошу поправить меня если что не так. |
| Автор: ivashkanet 10.7.2006, 09:37 | ||||||
Это совершенно новый экземпляр первой формы (ее сестра), а не первая форма Тебе нужно передать во вторую форму ссылку на первую перед вызовом Show()
а во второй форме вызвать
P.S. Естественно на второй форме нужно завести поле
Добавлено @ 09:44 Блин, опять опередил Неее, все нормуль. Даже через конструктор (правильнее чем у меня) P.S. Правда я не гуру Добавлено @ 09:46 Я как посмотрю, это самая животрепещущая тема (взаимодействие форм) в нашем разделе. Надо Faq по этому делу писать |
| Автор: arilou 10.7.2006, 12:43 |
Пиши, добавим. |
| Автор: ivashkanet 10.7.2006, 13:00 |
Не вопрос. 2-3 дня. (Может и раньше, как с работой будет) |
| Автор: bc0der 20.7.2006, 01:10 |
| Вот , сам решил вспомнить как это всё делать !!! Написал программу на VS 2005 . EXE в комплекте . Latitudes , можешь скачать и посмотреть !!! |
| Автор: Exception 20.7.2006, 11:39 |
| Верно говоришь. Только лично мне больше нравится вариант с классом, где хранятся ссылки на все формы проекта (a la My.Forms из VB .NET). |