Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > передача аргументов(обьектов) в событие


Автор: Stratus 14.5.2010, 00:54
Коллеги,

подскажите пожалуста  как можно в событие передать аргумент?

мне нужно в момент присвоения полю Текст ТекстБокса значения, 
чтобы воспроизводился код которому это значение нужно передать

Код

        private void textBox1_TextChanged(object sender, EventArgs e)
        {
                 //здесь любой код который принимает значение
        }


то есть при присваивании текстбоксу значения textBox1.text = "test"
значение test передается в событие

Автор: KelTron 14.5.2010, 05:32
Ну и бери значение из самого текстбокса.

Автор: Экскалупатор 14.5.2010, 07:22
Stratus, оно уже там будет. 
напиши
string s =textBox1.text; 
и получишь свое значение.

Автор: jorikdima 14.5.2010, 09:26
Цитата(Stratus @ 14.5.2010,  00:54)
Коллеги,

подскажите пожалуста  как можно в событие передать аргумент?

Создайте делегата с нужной сигнатурой, типа:
Код

public delegate void MyDel(string);

Затем событие:
Код

public event MyDel TextChanged;

И в коде :
Код

private void textBox1_TextChanged(object sender, EventArgs e)
        {
                if (TextChanged != null)
                    TextChanged(textBox1.text);
        }

Подпишитесь на событие об изменившемся свойстве:
this.TextChanged += ....
ну далее разберетесь.

Автор: mrbrooks 14.5.2010, 09:33
 smile 

Автор: Stratus 14.5.2010, 21:41
я как всегда неясно обьяснил...
нужно чтобы при добавлении текста в ТекстБокс значение поля Текст не заменялось а добавлялось.
Для этого используется конструкция: textBox1.Text += (значение типа string);
теперь эту конструкцию нужно поместить внутрь события: textBox1_TextChanged,
а следовательно и передать этой конструкции текстовое значение которое она должна добавить к строке. 

Без делегатов можно обойтись?

Автор: Экскалупатор 14.5.2010, 22:27
сделай метод, который будет у тебя делать то что тебе нужно с текстбоксом, в него передавай все что тебе хочется, из события вызывай этот метод. по моему все очевидно

Автор: Stratus 15.5.2010, 12:09
Цитата(Экскалупатор @ 14.5.2010,  22:27)
сделай метод, который будет у тебя делать то что тебе нужно с текстбоксом, в него передавай все что тебе хочется, из события вызывай этот метод. по моему все очевидно

smile)))
Все гениальное просто. Спасибо!

Но я так понимаю если задаться вопроссом принципиально впихивать значение через событие,
то надо делать так как jorikdima написал?

Автор: Любитель 15.5.2010, 13:40
Цитата(Stratus @  14.5.2010,  21:41 Найти цитируемый пост)
я как всегда неясно обьяснил

Да. Причём очень smile

Откуда берётся твоё "добавляемое значение". И про какое событие речь? Твоё событие? Или именно про Changed тектбокса? Если про последнее - подумай, откуда в нём возьмустя нужные тебе параметры? Кто-то их же должен передать smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)