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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> контрол из одной формы другой, всего 15 дней открываю С Шарп не пинять 
:(
    Опции темы
Ramin
Дата 4.8.2006, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 17.7.2006
Где: Азербаиджан, Баку

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



значит так есть два форма form1, form2
в форм1 есть кнопка и техтбох
нажымается на кнопку открывается форм2
в форм2 одна кнопка
на ОнКлик написал
Код

Form1 frm1 = new Form1();
frm1.textBox1.Text = "rrrrrrr";

в форм1 техтбохе не отображается слово rrrrrrr...тоесть ничего не пишется туда .. в дебаггере посмотрел что значение идет а на нём не показывается...

почему?

вот собственна проба проект!

Присоединённый файл ( Кол-во скачиваний: 9 )
Присоединённый файл  WindowsApplication7.rar 30,18 Kb
PM MAIL WWW ICQ   Вверх
NikotiN
Дата 5.8.2006, 08:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



потому как ты содёшь новый объект form1, а не обращаешься к уже созданному.
PM MAIL   Вверх
Ramin
Дата 5.8.2006, 08:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 17.7.2006
Где: Азербаиджан, Баку

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



Цитата(NikotiN @ 5.8.2006,  08:05)
потому как ты содёшь новый объект form1, а не обращаешься к уже созданному.

как обрашаться уже созданному обекту форм1
PM MAIL WWW ICQ   Вверх
stab
Дата 5.8.2006, 08:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



в класс Form1 добавь статичсекое поле:

Код

public static Form1 FormInstance;


содержимое метода Main замени на:

Код

FormInstance = new Form1();
Application.Run(FormInstance);


во второй форме при клике делай:

Код

Form1.FormInstance.textBox1.Text = textBox1.Text;


чтобы всё сделать красиво, поищи по форуму про синглетоны или, как вариант, можешь создать глобальный статический класс или глобальный объект, где будешь хранить ссылки на все глобальные объекты (формы).


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
Ramin
Дата 5.8.2006, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 17.7.2006
Где: Азербаиджан, Баку

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



Цитата(cully @ 5.8.2006,  08:50)
в класс Form1 добавь статичсекое поле:

Код

public static Form1 FormInstance;


содержимое метода Main замени на:

Код

FormInstance = new Form1();
Application.Run(FormInstance);


во второй форме при клике делай:

Код

Form1.FormInstance.textBox1.Text = textBox1.Text;


чтобы всё сделать красиво, поищи по форуму про синглетоны или, как вариант, можешь создать глобальный статический класс или глобальный объект, где будешь хранить ссылки на все глобальные объекты (формы).

Пасибо! одна прозба вот я дал маленкий солютион если не трудно тебя там создай глобальный объект, где будет хранится ссылки на все глобальные объекты ...  xnj dpzk z tuj rfr ghbvth!
PM MAIL WWW ICQ   Вверх
stab
Дата 5.8.2006, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



третий вариант. можно передавать ссылку на первую форму через конструктор второй формы. в Form2 добавь конструктор:

Код

public Form2(Form1 form): this()
{
  frm1 = form;
}


при клике:

Код

frm1.textBox1.Text = textBox1.Text;


создавай вторую форму в первой так:

Код

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


кароче, учите мат. часть.  smile 


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
Ramin
Дата 5.8.2006, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 17.7.2006
Где: Азербаиджан, Баку

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



нашёл такой вариант:
Код

((myform)Application.OpenForms["myform"]).textBox1.Text="asdddsad":


есть ешё один вопрос про компонентов:
мне нужна компонент аналогично на компонент DropDownButton но можно было добавлять на его items DateTimepicker .. тоесть на него можно добавлять Combobox но мне нужно DateTimepicker
может кто то встречал? или сам зделал!
PM MAIL WWW ICQ   Вверх
Exception
Дата 6.8.2006, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Если быть совсем уж придирчивым, это нарушение инкапсуляции: принципа, что каждый класс (например, форма) должен полностью скрывать свою реализацию (то есть не должен иметь public-полей). Уж лучше объявить в форме свойство:
Код
public string TextBoxText
{
    get { return _myTextBox.Text; }
    set { myTextBox.Text = value; }
}
и обращаться только к нему.
P.S. Одна тема - один вопрос
PM   Вверх
mr.DUDA
Дата 6.8.2006, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(Ramin @  5.8.2006,  22:16 Найти цитируемый пост)
Application.OpenForms

(offtopic) Это специально для таких ленивых придумали, кто с ООП не дружит  smile 


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


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 17.7.2006
Где: Азербаиджан, Баку

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



Цитата(mr.DUDA @ 6.8.2006,  10:38)
Цитата(Ramin @  5.8.2006,  22:16 Найти цитируемый пост)
Application.OpenForms

(offtopic) Это специально для таких ленивых придумали, кто с ООП не дружит  smile

а может быть минусы в таком обрашении?
PM MAIL WWW ICQ   Вверх
mr.DUDA
Дата 6.8.2006, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(Ramin @  6.8.2006,  10:41 Найти цитируемый пост)
а может быть минусы в таком обрашении?

Потенциальные источники ошибок:

1) форма указывается по строковому имени, а не по ссылке на экземпляр, или хотя бы по типу
2) существование открытой формы в момент обращения к OpenForms не гарантировано

Обе ошибки трудноуловимы, и проявляются в run-time, а не на этапе компиляции.


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


Эксперт
****


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

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



Я предпочитаю создавать класс ApplicationManager с методом GetForm<T> where T : Form, возвращающим соответствующую форму из внутренней коллекции или создающим новую, если таковой не находится.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




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


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

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