| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Разработка Windows Forms > Вызов существующей формы |
| Автор: PashaSem 1.5.2006, 00:20 |
| Помогите разобраться новичку. Спасибо за понимание. В проекте две формы. В Solution Explorer добавили новую форму Form2.cs, как ее вызвать из Form1.cs по клику кнопки? И чтоб во второй форме listBox1 отображал данные которые выводились в listbox первой формы? Как и через что передавать данные? Спасибо |
| Автор: Gesha 4.5.2006, 14:58 | ||||||
Можно так: Конструктору второй формы передаешь ObjectCollection листбокса (который на первой форме). Получится следующее: обработчик нажатия кнопки на форме1
конструктор формы2
|
| Автор: STEEL98 30.5.2006, 12:45 |
| А если мне необходимо передать из editbox-а Form2 , в label Form1 текс? |
| Автор: ivashkanet 30.5.2006, 13:19 | ||
То на форме Form2 у тебя должна быть ссылка на label в Form1, либо на всю форму Form1
Добавлено @ 13:21 P.S. Ссылка на форму, это просто переменная типа Form1 (либо Form), которой была присвоена Form1 Аналогично про label |
| Автор: STEEL98 30.5.2006, 15:49 |
| Form1 fm = new Form1(); вот переменная на форму.. как сделать на label? |
| Автор: ivashkanet 30.5.2006, 16:08 | ||||||
Не так, ты не понял. В форме f2 должно быть свойство:
При создании экземпляра формы 2 ты делаешь такую штуку:
А теперь можно обратиться из формы 2 к форме 1:
|
| Автор: ckopn 22.6.2006, 09:03 |
| Есть форма 1 static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Form f1 = new Form1(); Application.Run(f1); и форма 2 private void button5_Click(object sender, EventArgs e) { Form2 f2 = new Form2(); f2.ShowDialog(); } как при появлении формы 2 преносить текст из текстбоксов ф1 в лайбелы ф2? private void Form2_Load(object sender, EventArgs e) { f2.label1.Text= f1.TextBox1.Text; } что за дела? некатит!!! нужно добавить Инклуд??? Но это же не билдер =( |
| Автор: ivashkanet 22.6.2006, 09:29 |
На второй форме должна быть рабочая Глянь http://forum.vingrad.ru/index.php?showtopic=94074&view=findpost&p=747894 пост P.S. |
| Автор: ckopn 22.6.2006, 09:36 |
| Непомогло какой код нужно добавить? я непонимаю в билдере все так прсото. добавить нужно инклуде и имя заголовочного файла формы , чьи элементы нужно использовать. А тут как? |
| Автор: ivashkanet 22.6.2006, 09:46 |
Перичитай мой пост |
| Автор: ckopn 22.6.2006, 10:18 | ||||
| хотел обойти эту фишку через статические перененные. но не получилось =(
потом в обработчике
читал пост , непонимаю тебя ivashkanet подскажи что нужно сделать? выскакивает вот такая ошибка Error 2 The name 'f2' does not exist in the current context D:\Visual Studio 2005\Projects\bedjiki\bedjiki\Form2.cs 24 13 bedjiki но ведь неймспейс у форм один и тотже ? почему они нехотят контактировать? |
| Автор: ivashkanet 22.6.2006, 10:49 | ||
Самая главная проблемма в том, что в C# нет глобальных переменных Правильная ошибка. Ведь у тебя на второй форме нет поля с именем f2. Это поле первой формы. Во второй форме нужно обращаться к ней (к самой себе, т.е.) через this, или без него вовсе. Хоть что-то разъяснил? |
| Автор: Kefir 22.6.2006, 11:25 | ||||
| эммм... я думаю, что намного проще (и понятнее автору темы) будет сделать так: 1. перенести зхначение f1.label1.Text в f2.label1.Text:
2. перенести зхначение f2.label1.Text в f1.label1.Text:
Что-то типа то... должно сработать, хотя, конечно, не риал-тайм во втором случае получился, т.к. Ф1 обновит значение только после закрытия Ф2 |
| Автор: ckopn 22.6.2006, 11:53 | ||||
я так и делал |
| Автор: ckopn 22.6.2006, 12:44 | ||
Вот что нужно было написать:
|