Form2 frm2 = new Form2();
frm2.Show();
this.Hide();
Переход от формы к форме
Задача такая:
есть 3 формы, допустим абсолютно разные ос всякими контролами и примочками. Помимо этих контролов есть по 2 кнопки на форме.
Например кнопки на form1 должны отправлять на form2 и form3, скрывая form1. Аналочно для 2-х других.
Как это правильно реализовать!?
Код:
Однако как вернуться обратно, причем не создавая объект формы, а пользуя тот, что уже в хайде висит!?
Можно его просто не хайдить. Тогда кликом мыши ) Увы, сейчас msdn под рукой нет, так что ничего конкретного сказать не могу. Но там ответ будет однозначно )
похожий вопрос, надо передать данные с контролов 2 формы, содание формы 2 чистая динамика, на контролы формы 1. скажем на примере textBox1 и Textbox2. на каждой форме есть по 1 экземпляру
Цитата: Destroer
похожий вопрос, надо передать данные с контролов 2 формы, содание формы 2 чистая динамика, на контролы формы 1. скажем на примере textBox1 и Textbox2. на каждой форме есть по 1 экземпляру
Недавно сам искал ответ на этот вопрос.
Например при нажатии кнопки на второй форме пишешь в обработчик:
Form frmMain = Application.OpenForms["Form1"];
Button btn1 = (Button)frmMain.Controls["button1"];
btn1.Text = "новый текст";//передаём новый текст на кнопку Form1
и стат. класса для хранения хендлов всех используемых окон:
static public class CL
{
public static IntPtr F1Handle;
public static IntPtr F2Handle;
public static IntPtr F3Handle;
}
для скрытия окна:
F1Handle=F1.Handle;
this.Hide();
для его показа из любой другой формы:
Form.FromHandle(CL.F1Handle).Show();
наверное, для большого кол-ва окон проще использовать массив.
ой :) дату не посмотрел :))
В Windows Forms, есть такое понятие как owner. Так вот. создавая форму, ей можно указать ее владльца, Form.owner, допустим, простой пример:
Код:
Form2 frm = new Form2();
frm.owner = this;
frm.Show();
this.Hide();
frm.owner = this;
frm.Show();
this.Hide();
Потом, когда надо отобразить родителя формы: frm.owner.Show();
ЗЫ: за точность синтаксиса не ручаюсь, писал на ходу. Но, думаю, суть понятна :-)
Вообще-то, такого рода проблемы становятся аткуальными вследствие неверного планирования бизнес-логики приложения. То, что одна форма вызывает другую форму/диалог, а сама тут же откалывается, не есть нермальный ход событий - оно и в жизни некорректно (вспомним Тома Сойера и его забор). Правильнее было бы завести класс, следящий за порядком и правилом отображения тех или иных компонентов пользователького интерфейса. Такая организация даст возможность более гибкого управления интерфейсом, а также нивелирует проблемы освобождения неиспользуемых форм/элементов управления. Конкретная же реализация зависит от поставленной задачи
Among thousands of people, you meet those you’ve met. Through thousands of years, with the boundlessness of time, you happen to meet them, neither earlier nor a bit too late. ________Buy cheap