Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Достучаться до родительского окна / 4 сообщений из 4, страница 1 из 1
08.08.2003, 16:14
    #32231448
DBelyakov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Достучаться до родительского окна
Вопрос в следующем. Есть главная форма и еще одна, которая открывается как модальное окно. Надо сделать так, чтоб при нажатии кнопки в модальном окне - сработала функция главного и что-нить в нем перерисовала (например изменила текст в label). Всем большое спасибо.
...
Рейтинг: 0 / 0
08.08.2003, 23:27
    #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
09.08.2003, 00:47
    #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
11.08.2003, 13:13
    #32232775
DBelyakov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Достучаться до родительского окна
Большое всем Вам спасибо - все получилось.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Достучаться до родительского окна / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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