Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Блокнот, Пункт найти: взаимодействие форм 
:(
    Опции темы
Latitudes
Дата 9.7.2006, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 9.7.2006

Репутация: нет
Всего: нет



Я недавно изучаю С# и .NET. РАди пркатического эксперимента делаю блокнот. Вот и проблемка. Знакомы с его пунктом найти??))
Вот там вводишь что те надо и это находиться в тексте и выделяется...
Есть две формы. Одна-сам блокнот..текст в textBox'е, вторая форма-"Найти"  с textBox, двумя button'ами, ну ыобщем, ка кв блокноте...Было много вариантов как заставить из одной формы пеердавать данные в другую. Остановилась на том, что в первой форме сделала метод 

Код

public void FoundText(string S)
        {
            
            int a=textBox.Text.IndexOf(S);
            
            textBox.Select(a,a+S.Length);
        }

А в событии Клик для кнопки "Найти":
Код

Form f2=new Form2();            
            f2.Show();

А во второй форме в событии Клик для баттона "Найти далее":
Код

Form1 F1=new Form1();
            F1.FoundText(this.textBox1.Text);    

Только получается то, что textBox.Text (в первой форме то бишь) пустой даже если текст там есть..
Подскажите как это лучше сделать.... 
PM MAIL   Вверх
mr.DUDA
Дата 9.7.2006, 23:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 24
Всего: 232



Цитата(Latitudes @  9.7.2006,  21:51 Найти цитируемый пост)
Только получается то, что textBox.Text (в первой форме то бишь) пустой даже если текст там есть..

Текстбокс очищается при нажатии "Найти далее", или что ? 


--------------------
user posted image
PM MAIL WWW   Вверх
Tror
Дата 10.7.2006, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 193
Регистрация: 29.4.2005
Где: Кишинёв

Репутация: 2
Всего: 4



Доброго времени суток.
Я еще только начинаю постигать мир .NET, но попытаюсь помочь.


Цитата(Latitudes @  9.7.2006,  21:51 Найти цитируемый пост)
Только получается то, что textBox.Text (в первой форме то бишь) пустой даже если текст там есть..

Код

Form1 F1=new Form1();


дело в том что твой код, насколько я понял, создает новый экземпляр формы Form1,
а не использует уже существующий.

По моему разумению надо делать так:

переопределяем конструктор второй формы, чтоб он принимал в качестве параметра
ссылку на вызывающую форму и создаем закрытый член класса refFm в котором будет храниться
ссылка на вызвавшую форму
Код

Form1 refFm;

public Form2(Form1 frm)
{
    InitializeComponent();
    refFm = frm;
}


далее при создании экземпрляра второй формы предаем ей ссылку на вызывающую
Код

    Form2 fm = new Form2(this);
    fm.Show();


а затем уже из второй формы делаем все что нам надо
Код

private void button1_Click(object sender, EventArgs e)
{
    refFm.FoundText(this.textBox1.Text);
    // и т.д.
}
 

P.S. Уважаемых гуру C# и .NET прошу поправить меня если что не так. smile  

Это сообщение отредактировал(а) Tror - 10.7.2006, 09:35
--------------------
Не говори всегда что знаешь, но знай всегда что говоришь. /Клавдий/============================================Кто может -- тот делает. Кто не может... тот получает сертификат MCSE ;)
PM MAIL ICQ   Вверх
ivashkanet
Дата 10.7.2006, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 11
Всего: 149



Цитата(Latitudes @  9.7.2006,  21:51 Найти цитируемый пост)
Form1 F1=new Form1();

Это совершенно новый экземпляр первой формы (ее сестра), а не первая форма smile 
Тебе нужно передать во вторую форму ссылку на первую перед вызовом Show()
Код

Form f2=new Form2();       
f2.MainForm = this;     
f2.Show();

а во второй форме вызвать 
Код
 MainForm.FoundText(this.textBox1.Text);    

P.S. Естественно на второй форме нужно завести поле 
Код
public Form1 MainForm

 smile

Добавлено @ 09:44 
Блин, опять опередил  smile 
Цитата(Tror @  10.7.2006,  09:32 Найти цитируемый пост)
 прошу поправить меня

Неее, все нормуль. Даже через конструктор (правильнее чем у меня) smile 
P.S. Правда я не гуру smile

Добавлено @ 09:46 
Я как посмотрю, это самая животрепещущая тема (взаимодействие форм) в нашем разделе. 
Надо Faq по этому делу писать smile  
PM MAIL WWW ICQ   Вверх
arilou
Дата 10.7.2006, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: нет
Всего: 61



Цитата(ivashkanet @  10.7.2006,  09:37 Найти цитируемый пост)
Надо Faq по этому делу писать 

Пиши, добавим.  smile  


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
ivashkanet
Дата 10.7.2006, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 11
Всего: 149



Цитата(arilou @  10.7.2006,  12:43 Найти цитируемый пост)
Пиши, добавим

Не вопрос. 2-3 дня. (Может и раньше, как с работой будет) 
PM MAIL WWW ICQ   Вверх
bc0der
Дата 20.7.2006, 01:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 9.5.2006

Репутация: нет
Всего: нет



Вот , сам решил вспомнить как это всё делать !!! Написал программу на VS 2005 . EXE в комплекте .
Latitudes , можешь скачать и посмотреть !!! 

Присоединённый файл ( Кол-во скачиваний: 11 )
Присоединённый файл  notepad_find.rar 35,49 Kb
PM MAIL ICQ   Вверх
Exception
Дата 20.7.2006, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 5
Всего: 186



Верно говоришь. Только лично мне больше нравится вариант с классом, где хранятся ссылки на все формы проекта (a la My.Forms из VB .NET). 
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.1048 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.