powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / создание делегата
12 сообщений из 12, страница 1 из 1
создание делегата
    #32694065
chess
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
День добрый!!
Есть переменная а. Требуется, при изменении ее значения, наступало следующее событие

void Test()
{
MessageBox.Show("Привет")
}

Как это сделать с помошью делегата?
...
Рейтинг: 0 / 0
создание делегата
    #32694105
Фотография snake
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
какого типа переменная?
...
Рейтинг: 0 / 0
создание делегата
    #32694113
chess
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Переменная типа Color a.
...
Рейтинг: 0 / 0
создание делегата
    #32694189
Фотография snake
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дальше копаем:
1. это локальная переменная метода,
2. член вашего класа (код доступен),
3. член не вашего класса (код которого не доступен - sealed)
...
Рейтинг: 0 / 0
создание делегата
    #32694195
Фотография snake
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ps. я не много вопросов задаю?
...
Рейтинг: 0 / 0
создание делегата
    #32694271
chess
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ок. Попробую рассказать более подробно.
Есть форма (Form1), в нутри которого и находится данная переменна (private Color color;).
Из этой формы, вызывается второя форма (Form2), в которую в качесве параметра передается переменная color.
Во второй форме, происходит изменение данной переменной (хотя может и остаться без изменения) и в Form1 возвращается новое значение color.
...
Рейтинг: 0 / 0
создание делегата
    #32694309
maratic_net
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А когда вызывается MessageBox.Show("Привет"). После закрытия второй формы ? Тогда может после этого и проверить значение цвета и обойтись без событий. Или я что то не понимаю
...
Рейтинг: 0 / 0
создание делегата
    #32694347
chess
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вы все правильно понимаете, MessageBox.Show("Привет") действительно должен вызываться после закрытия второй формы. Но проблема в том, что я вторую форму вызываю с помощью Show(), а не с помощью ShowDialog(). для этого есть свои причины. И после закрытия второй формы, должно производиться проверка, произошло изменения переменной color, или нет, и если произошло, то вызвать MessageBox.Show("Привет").
...
Рейтинг: 0 / 0
создание делегата
    #32694360
maratic_net
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну тогда в первой форме сделать get-set -свойство типа Color и путь вторая форма работает только с ним...
...
Рейтинг: 0 / 0
создание делегата
    #32694368
maratic_net
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
после закрытия второй формы, должно производиться проверка, произошло изменения переменной color, или нет, и если произошло, то вызвать MessageBox.Show("Привет").

ах да... может просто подписатьяс на событие закрытия второй формы.
MessageBox.Show("Привет") должен вызываться при каждом изменении свойства или только один раз при закрытии формы ?
...
Рейтинг: 0 / 0
создание делегата
    #32694551
Фотография profil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
form2
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
public delegate void ChangeColorHandler(Color color);
public event ChangeColorHandler ChangeColor;

private void button1_Click(object sender, System.EventArgs e)
{
	ColorDialog cd = new ColorDialog();
	if(DialogResult.OK == cd.ShowDialog())
	{
		ChangeColor(cd.Color);
	}
}
form1
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Form2 f = new Form2();
f.ChangeColor += new colorgrid.Form2.ChangeColorHandler(f_ChangeColor);
f.Show();
............

private void f_ChangeColor(Color color)
{	 //обработка 
	this.BackColor = color;
}
----------------------------------------------------
зы. для конкретно поставленной задачи, имхо, надо передавать переменную как параметр ref color , и ни какие делегаты не нужны...
...
Рейтинг: 0 / 0
создание делегата
    #32695019
chess
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое, то что нужно
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / создание делегата
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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