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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Доступ к элементам родительской формы 
:(
    Опции темы
AlexC
Дата 22.5.2006, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Всем привет!
Я еще только начинаю осваивать С#, поэтому сильно не пинайте smile 

Есть главная форма. у нее описываю такое свойство:

    public int asd=1;

Также на этой форме есть список, при клике на который открывается модальное диалоговое окно.
В функции прорисовки диалога пишу такое:

try{
    MessageBox.Show(((MainForm)this.ParentForm).asd.ToString());
} catch(Exception ex){
    MessageBox.Show( ex.Message );
}

И у меня вылетает исключение с текстом: Object reference not set to an instance of an object

В чем моя проблема? Подскажите, пожалуйста как это исправить.

P.S. Если это важно, использую SharpDevelop 2.0 
PM MAIL   Вверх
Softaz
Дата 22.5.2006, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


wasm
**


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

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



Код

            frm_viewkvarthome frm_tc = (frm_viewkvarthome)Application.OpenForms["frm_viewkvarthome"];
            frm_tc.SetTab(index);


Это я из главной формы (FormMain) вызвал функцию из frm_viewkvarthome.
Хотя это и не правильно (если углубляться), но для первого раза пойдет.
P.S.: .NET 2.0 


--------------------
Разочарованный в .NET
PM MAIL WWW   Вверх
-ser-
Дата 23.5.2006, 03:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



он же хочет чтобы ты в конструкторе класса модального диалогового окна передал инстанс головной формы.
Код

//в вызываемом классе 
private FormMain formMain;

public MyModalDialog( FormMain form )
{
    InitializeComponent();    

    formMain = form;    
}
...
formMain.asd = ...

а в главной при вызове ставишь this
Код

myModalDialog.ShowDialog( this ) 


полазил бы по этому форуму, вопрос-то стандартный. 


--------------------
"Тонкая, однако, работа." 
PM MAIL ICQ   Вверх
AlexC
Дата 23.5.2006, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Большое спасибо! Все заработало. Правда SharpDevelop как и раньше выдает предупреждение, что будет исключение, но его нет smile 

Цитата

а в главной при вызове ставишь this
Код

myModalDialog.ShowDialog( this ) 


Только передавать его надо при вызове конструктора smile 

Цитата

полазил бы по этому форуму, вопрос-то стандартный.

Я полазил по MSDN, нашел это и сделал как там написано. 
PM MAIL   Вверх
-ser-
Дата 24.5.2006, 05:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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




а вот здесь тогда необходимо уточнить. если так как в MSDN, 

ParentForm, похоже, только для случаев когда родительская форма является MdiContainer'oм. может это как раз твой случай. тогда при вызове второй, нам надо будет указать 
Код

form2.MdiParent = this;

более того, в этом случае она не может быть модальной, т.е. form2.ShowDialog() здесь не сработает. 


 


--------------------
"Тонкая, однако, работа." 
PM MAIL ICQ   Вверх
AlexC
Дата 24.5.2006, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Может оно и так. Но там ничего не сказано об этом, статья эта находится в разделе про диалоги, а MDI дальше идет.  
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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