Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
Kenj1
1

Передать ивент контрола в ф-цию

23.01.2013, 03:24. Показов 735. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет. Имеется такая вот ф-ция:

C#
1
2
3
4
5
6
7
8
9
10
delegate void ParametrizedMethodInvoker1(int arg);
void log_good(int arg)
{
    if (InvokeRequired)
    {
        Invoke(new ParametrizedMethodInvoker1(log_good), arg);
        return;
    }
    label4.Text = arg.ToString();
}
В том дело что счетчиков приходится делать много поэтому хочется сделать всё в 1 ф-циию
Реально ли передать ф-ции что-то типо такого:

C#
1
2
3
4
5
6
7
8
9
10
delegate void ParametrizedMethodInvoker1(CONTROL ,int arg);
void log_good(CONTROL ,int arg) // log_good(label4.Text, 5)
{
    if (InvokeRequired)
    {
        Invoke(new ParametrizedMethodInvoker1(log_good), CONTROL, arg);
        return;
    }
    CONROL = arg.ToString(); // label4.Text = arg.ToString();
}
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.01.2013, 03:24
Ответы с готовыми решениями:

Передать имя контрола в класс
на форме есть comboBox1, нужно его имя передать в другой класс для использования...

Как передать операторы if, and, or, >, <, =,!=, +,-,*,/,(,) в код из контрола
Подскажите каким образом можно из контрола в код передать условия. Например: в текстбоксе введено...

Передать нажатие с одного контрола на другой
В программе динамически создаются контролы (Image), при наведении мыши на контрол поверх создаётся...

Как передать переменной имя существующего контрола
собственно в теме весь вопрос и изложил есть переменная Dim ctl As Control есть список...

5
146 / 143 / 32
Регистрация: 21.01.2012
Сообщений: 545
24.01.2013, 12:29 2
Я делал с помощью рефлексии такой инвокер универсальный. Если вспомню как точно, напишу
0
608 / 583 / 157
Регистрация: 29.06.2010
Сообщений: 1,620
24.01.2013, 15:43 3
Цитата Сообщение от Kenj1 Посмотреть сообщение
C#
1
Invoke(new ParametrizedMethodInvoker1(log_good), CONTROL, arg);
а это, прости, вызывает этот же метод, но в базовом потоке? а всё для того чтоб поменять текст любого контрола?

C#
1
2
3
4
5
6
7
void RenameControl(Control item ,object value)
{
    if (InvokeRequired)
        BeginInvoke(new MethodInvoker(()=>item.Text=value.ToString()));
    else
        item.Text=value.ToString();
}
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
25.01.2013, 00:34 4
Spectral-Owl, чтобы убрать дублирвоание кода, можно еще дописать так
C#
1
2
3
4
5
6
7
8
void RenameControl(Control item ,object value)
{
    var myaction = ()=>item.Text=value.ToString();
    if (InvokeRequired)
        BeginInvoke(new MethodInvoker(myaction));
    else
        myaction();
}
1
608 / 583 / 157
Регистрация: 29.06.2010
Сообщений: 1,620
25.01.2013, 09:28 5
достойное внимания решение - в переменные выражения записывать. Даже почему-то не встречался до этого с таким подходом, но вот одна беда - или фраймворк мал, или просто небольшая очепятка: неявно-типизированные переменные не могут быть использованы для записи лямбд. Нужно делегату объявлять для них)
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
25.01.2013, 12:30 6
Spectral-Owl, ну да, тогда так
C#
1
Action myaction = ()=>item.Text=value.ToString();
0
25.01.2013, 12:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.01.2013, 12:30
Помогаю со студенческими работами здесь

Передать имя картинки и имя контрола в метод
есть у меня метод, который подставляет картинки из ресурсов в picturebox void ShowImage() ...

Ивент
Нужно проверить (онлайн) состояние checkbox'a. Если on, то делать input enabled, если наоборот- то...

Управление событиями одного контрола через события другого контрола
Уважаемые форумчане помогите решить проблему. Есть два компонента на форме: checkBox и...

ивент и дата
здравствуйте, у меня вопрос ну больше мне нужна помощь... я пытаюсь сделать такую вешь у...

1 ивент для всех
Всем привет, есть один вопрос. Есть n'ое кол-во Edit'ов. В них по дефолту вбиты определенны...

Ивент с реакцией в другом потоке
В главном потоке происходит событие, к примеру А = 5. Как сделать так чтобы на смену значения А,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru