powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Достучаться до родительского окна
4 сообщений из 4, страница 1 из 1
Достучаться до родительского окна
    #32231448
DBelyakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос в следующем. Есть главная форма и еще одна, которая открывается как модальное окно. Надо сделать так, чтоб при нажатии кнопки в модальном окне - сработала функция главного и что-нить в нем перерисовала (например изменила текст в label). Всем большое спасибо.
...
Рейтинг: 0 / 0
Достучаться до родительского окна
    #32231732
Iva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Iva
Гость
1. В дочерней форме объявить событие (public event ... MySomeEvent).
2. В нужном месте (например, в обработчике нажатия кнопки и т.д.) родительской формы создать дочерюю (MyModalForm f = new MyModalForm())
3. Подписаться на событие (f.MySomeEvent+=new ...Handler(MySomeProcInFirstForm))
4. f.ShowDialog().
5. При наступлении нужного условия в модальной (дочерней) форме генерировать событие (if (this.MySomeEvent!=null) this.MySomeEvent(this,...))
6. В родительской форме обработать событие в методе MySomeProcInFirstForm.
...
Рейтинг: 0 / 0
Достучаться до родительского окна
    #32231755
Sergey Pikhulya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
using System;
using System.Windows.Forms;

class OwnerForm: Form
{
	Label label;
	public OwnerForm()
	{
		label = new Label();
		label.Text =  "label" ;

		Button button = new Button();
		button.Text =  "Show" ;
		button.Click += new EventHandler(OnButtonClick);
		button.Top = label.Bottom;

		Controls.AddRange(new Control[] {label, button});
	}

	// set свойство изменяющее Label.Text
	public string LabelText
	{
		set
		{
			label.Text = value;
		}
	}
	
	//Создание модального окна
	void OnButtonClick(object sender, EventArgs e)
	{
		OwnedForm ownedForm = new OwnedForm();
		ownedForm.ShowDialog(this);
	}
	
	static void Main()
	{
		Application.Run(new OwnerForm());
	}
}


class OwnedForm: Form
{
	public OwnedForm()
	{
		Button button = new Button();
		button.Click += new EventHandler(OnButtonClick);
		button.Text =  "Change" ;
		button.Parent = this;
	}

	//обновление Label owner'a
	void OnButtonClick(object sender, EventArgs e)
	{
		((OwnerForm)Owner).LabelText =  "new value" ;
	}
}
...
Рейтинг: 0 / 0
Достучаться до родительского окна
    #32232775
DBelyakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое всем Вам спасибо - все получилось.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Достучаться до родительского окна
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]