C нет перегруженного метода который соответствует делегату
Перейти к содержимому

C нет перегруженного метода который соответствует делегату

  • автор:

Никакая перегрузка для ‘метода’ не соответствует делегату ‘System.EventHandler’

Я пытаюсь создать программу, которая после нажатия кнопки каждые 5 секунд будет выполнять функцию (OnTimed).

Вот пока что код:

Когда я запускаю код, он показывает ошибку:

«Нет перегрузки для ‘method’ соответствует делегату ‘System.EventHandler’

6 ответы

Сигнатура метода обработчика событий несовместима с типом делегата.

Подписчики на DispatcherTimer.Tick событие должно быть EventHandler тип делегата, который объявлен как:

Попробуйте это вместо этого:

Если вы используете Windows Phone 8.1, вам понадобится следующее

Метод OnTimed должен быть объявлен следующим образом:

Я знаю, что может быть немного поздно, но я просто хотел добавить немного больше для тех, у кого есть эта проблема:

Также это можно записать так: timer.Tick + = Метод;

ответ дан 25 апр.

публичное событие EventHandler Tick;

Итак, параметры EventHandler должны быть:

Похоже, тебя немного не заметили Система.Таймеры.Таймер.Прошло событие, которое:

В моем случае я использовал настраиваемый элемент управления winforms для распознавания отпечатков пальцев digitalPersona.

Когда я пытался перегрузить метод OnComplete, он выдавал «Нет перегрузки . »

Вот как это выглядело.

Я заглянул в сборку и заметил, что к третьему параметру прикреплено ключевое слово ref. Я добавил это в свой код, и он сработал:

ответ дан 11 окт ’17, 11:10

К сожалению, это не имеет ничего общего с исходным вопросом (на который уже был дан достаточный ответ). — user604613

Да, но я погуглил заголовок этого сообщения и обнаружил, что ответ отличается от выбранного здесь. Неужели кому-то так сложно столкнуться с той же проблемой, что и я? Я не публиковал его для репутации или ж / д — я хочу помочь другим, в этом весь смысл этого сайта .. — Кристиан Джи

Правильный курс действий — создать свой собственный вопрос, соответствующий вашей проблеме, с правильными тегами (Windows Forms и т. Д.) И ответить на него самостоятельно. — user604613

Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками c# .net wpf compiler-errors or задайте свой вопрос.

No overload for 'method' matches delegate 'System.EventHandler'

I am trying to build a program that, once the button was click, every 5 second will perform the function (OnTimed).

Below is the code so far:

When i run the code, it show the error:

«No overload for ‘method’ matches delegate ‘System.EventHandler’

6 Answers 6

The signature of the event-handler method isn’t compatible with the delegate type.

Subsribers to the DispatcherTimer.Tick event must be of the EventHandler delegate type, which is declared as:

Try this instead:

If you using Windows phone 8.1 then you need the following

Method OnTimed has to declared like this:

I know it might be a little bit late, but i just wanted to throw in a bit more for anyone with this problem:

solves the Problem.

It can also be written like this: timer.Tick += Method;

Dispatcher.Tick is simple EventHandler:

public event EventHandler Tick;

So EventHandler parameters should be:

Looks like you a bit overlooked around the System.Timers.Timer.Elapsed event which is:

In my case I was using a custom winforms control for digitalPersona fingerprint recognition.

When I tried to overload the ‘OnComplete’ method it would come up with ‘No overload. ‘

This is what it looked like.

I looked into the assembly and I noticed that third parameter had the ‘ref’ keyword attached to it. I added it in my code and it worked:

Почему я получаю ошибку Нет перегрузки для . соответствует делегату?

Затем я вызываю этот метод в двух местах в форме1 как в событиях с кнопками:

Ошибка, которую я получаю, находится в этом методе в форме1:

Ошибка включена: новый ThreadStart (DoRequest)

Ошибка 1 Нет перегрузки для ‘DoRequest’ соответствует делегату ‘System.Threading.ThreadStart’

Как я могу решить эту ошибку?

2 ответа

Конструктор ThreadStart ожидает, что делегат возвращает void и не принимает аргументов. Ошибка Error 1 No overload for ‘DoRequest’ matches delegate ‘System.Threading.ThreadStart’ означает, что подпись метода для DoRequest не соответствует сигнатуре, определенной делегатом ThreadStart . Это будет похоже на то, что вы передаете строку в метод, которому нужен двойной.

А затем отредактируйте метод DoRequest, чтобы ожидать объект, который вы затем можете выполнить:

C нет перегруженного метода который соответствует делегату

Профиль
Группа: Участник
Сообщений: 11
Регистрация: 26.11.2006

Репутация: нет
Всего: нет

День добрый.
Мне нужно чтобы мое приложение определяло активно оно в данный момент или нет.
Допустим открыта моя прога и блокнот. Если выбрана моя прога то заголовок у нее меняестся на "Активна", а если блокнот то на "Не активна".
Спс.

Это сообщение отредактировал(а) Dazzle — 29.4.2010, 16:41

Профиль
Группа: Участник
Сообщений: 745
Регистрация: 8.10.2006
Где: Красноярск

Репутация: 5
Всего: 38

Код
public partial class Form1 : Form
<
public Form1()
<
InitializeComponent();
this.Activated += new EventHandler(Form1_Activated);
this.Deactivate += new EventHandler(Form1_Deactivate);
>

void Form1_Deactivate(object sender, EventArgs e)
<
this.Text = "Неактивна";
>

void Form1_Activated(object sender, EventArgs e)
<
this.Text = "Активна";
>
>

Это сообщение отредактировал(а) KelTron — 29.4.2010, 12:03

Профиль
Группа: Участник
Сообщений: 11
Регистрация: 26.11.2006

Репутация: нет
Всего: нет

Профиль
Группа: Участник
Сообщений: 381
Регистрация: 12.12.2008
Где: .net

Репутация: 1
Всего: 9

Код
private void Form1_MouseMove(object sender, MouseEventArgs e)
<
this.Text = e.X.ToString();
>

Профиль
Группа: Участник
Сообщений: 11
Регистрация: 26.11.2006

Репутация: нет
Всего: нет

По идее должно работать, в vb точно такой метод работает, но тут что-то не хочет даже когда форма активна. (

Пробовал вставить в private void InitializeComponent()

Код
this.MouseMove += new System.EventHandler(this.Form1_MouseMove);

но C# заругался "Нет перегруженного метода для "Form1_MouseMove", который соответствует делегату "System.EventHandler" D:\Dazzle\Visual Studio 2008\Projects\WindowsFormsApplication1\WindowsFormsApplication1\Form1.Designer.cs"

Это сообщение отредактировал(а) Dazzle — 29.4.2010, 17:51

Профиль
Группа: Участник
Сообщений: 381
Регистрация: 12.12.2008
Где: .net

Репутация: 1
Всего: 9

Код
public Form1()
<
InitializeComponent();
this.MouseMove += new MouseEventHandler(Form1_MouseMove);
>

Профиль
Группа: Участник
Сообщений: 11
Регистрация: 26.11.2006

Репутация: нет
Всего: нет

  • Что же такое .NET? Краткое описание,изучаем.
  • Какой язык программирования выбрать? выбираем.
  • C#. С чего начать? начинаем.
  • Защита исходного кода .NET приложений, защищаем.
  • Литература по .NET, обращаемся.
  • FAQ раздела,ищем здесь.
  • Архиполезные ссылки:www.connectionstrings.com, www.pinvoke.net, www.codeproject.com

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »

[ Время генерации скрипта: 0.1041 ] [ Использовано запросов: 21 ] [ GZIP включён ]

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *