Буду вечно челом отбивать за помощь!

  • Автор темы Guest_JuSt_*
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

Guest_JuSt_*

#1
Надо передать значение переменной из одной формы в другую. Буду очень признателен если поможете.

Механизм такой: открывается Form1, затем из нее Form2. В Form2 переменной Variable присваивается значение 5. Затем необходимо что-то написать, что позволит передать это значение в Form1 и отобразить его в textBox1.

С примерным конечным вариантом кода, пожалуйста, я в терминологии не силен. ... проект завтра сдавать... мля....
*BEGGING**BEGGING**BEGGING*
 
H

Hetman

#2
А что Form1.textBox1.Text не работает? (по аналогии с visual basic)
 
G

Guest_JuSt_*

#3
нет... даже тотальное выставление public не помогает. Не видит вторая форма классы, созданные внутри первой. Защита, понимаешь...
 
?

????

#7
<!--QuoteBegin-Guest_JuSt_*+19:12:2005, 02:20 -->
<span class="vbquote">(Guest_JuSt_* @ 19:12:2005, 02:20 )</span><!--QuoteEBegin-->я в C# то есть
[snapback]28515" rel="nofollow" target="_blank[/snapback]​
[/quote]
точно :unsure: я не посмотрел в каком форуме вопрос :)
вот кое-что нашел
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, hugo, Вы писали:

А>>>Из главной формы (Form1) вызывается вторая, модальная, Form2. Как теперь сделанные изменения на Form2 отобразить на Form1?
H>>2. Вызвать из Form2 метод в Form1

А>А как его вызывать? Указать, что он public и вызывать как Form1.Method()? Получаем ошибку: An object reference is required for the nonstatic field, method, or property. Т.е. ему нужна ссылка на объект Form1. Он генерируется как new Form1() [Application.Run(new Form1());], т.е. без ссылки на переменную (в VS по умолчанию так). Если эту ссылку создать, и передать в Application.Run(), то все работает, но ведь в классе Form2 все равно эту переменную не будет "видно".

так почему бы не передать ссылку на эту переменную конструктору класса Form2 ???

вместо

public Form2()
{
// .....
}



напиши так

public Form2(Form owner)
{
// .....
base.Owner = owner;
}



когда создаешь экземпляр Form2 в Form1 пишешь

Form2 form2 = new Form2(this);
// .....
base.Owner = owner;



а потом в форме2

((Form1)this.Owner).Do();



Уф.





А>>>Т.е. как получить доступ к контролам Form1 из Form2. На дельфях было просто — Form1.Control_Name., а тут не работает.

H>>Работает. Измени модификатор доступа для контрола.

А>Аналогично....
 
Статус
Закрыто для дальнейших ответов.