Vb.net to c# обработчик событий не стреляет (работает в vb.net, но не C#)C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Vb.net to c# обработчик событий не стреляет (работает в vb.net, но не C#)

Сообщение Anonymous »

Эй, все, что я пытался выяснить это в течение нескольких часов, и просто не могу понять, почему один и тот же код работает в моей программе vb.net, но не когда я конвертирую его в C#... Hdradiodll - это DLL, на который я ссылался в обоих проектах.

Код: Выделить всё

Imports HDRadioComm.HDRadio
Imports HDRadioComm

Dim hdRadioDLL As New HDRadioComm.HDRadio

Private Sub hdradio_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
AddHandler hdRadioDLL.HDRadioEventTunerTuned, AddressOf HDRadioCore_HDRadioEvent_TUNER_Tuned
AddHandler hdRadioDLL.HDRadioEventTunerSeeking, AddressOf HDRadioCore_HDRadioEvent_TUNER_Seeking
}

Private Sub HDRadioCore_HDRadioEvent_TUNER_Tuned(ByVal Message As String)
Debug.WriteLine("called TUNER_Tuned")
}

Private Sub HDRadioCore_HDRadioEvent_TUNER_Seeking(ByVal Message As String)
Debug.WriteLine("called TUNER_Seeking")
}
И, как я упоминал выше, этот код работает просто хорошо при запуске версии vb.net.
Мой преобразованный код C#: (cls_hdradio.cs)

Код: Выделить всё

using HDRadioComm.HDRadio;
using static HDRadioComm;

public HDRadio hdRadioDLL;

public void startRadio()
{
hdRadioDLL = new HDRadio();
hdRadioDLL.HDRadioEventTunerTuned += HDRadioCore_HDRadioEvent_TUNER_Tuned;
hdRadioDLL.HDRadioEventTunerSeeking += HDRadioCore_HDRadioEvent_TUNER_Seeking;

if (hdRadioDLL.IsPowered == false)
{
hdRadioDLL.HDRadioEventTunerTuned += HDRadioCore_HDRadioEvent_TUNER_Tuned;
hdRadioDLL.HDRadioEventTunerSeeking += HDRadioCore_HDRadioEvent_TUNER_Seeking;
hdRadioDLL.AutoSearch = false;
hdRadioDLL.DebugMode = false;
hdRadioDLL.ComPortString = comPort;
hdRadioDLL.RadioType = HDRadio.HardwareType.Automatic;

if (!hdRadioDLL.IsOpen)
{
hdRadioDLL.Open();
}
}
}

public void HDRadioCore_HDRadioEvent_TUNER_Tuned(string Message)
{
Debug.WriteLine("called TUNER_Tuned")
}

public void HDRadioCore_HDRadioEvent_TUNER_Seeking(string Message)
{
Debug.WriteLine("called TUNER_Seeking")
}

public void cmdSeekPrev()
{
hdRadioDLL.SeekDown(HDRadioSeekType.ALL);
}

public void cmdTuneDown()
{
hdRadioDLL.TuneDown();
}
и по какой -то причине hdradiocore_hdradioevent_tuner_tuned или hdradiocore_hdradioevent_tuner_seeking никогда не выжимает, когда вызывает их, как это:
vb.net: (hdradio.Private Sub cmdSeekPrev_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSeekPrev.Click
hdRadioDLL.SeekDown(HDRadioComm.HDRadio.HDRadioSeekType.ALL)
End Sub

Private Sub cmdTuneDown_Click(ByVal sender As Object, ByVal e As EventArgs) Handles cmdTuneDown.Click
hdRadioDLL.TuneDown()
End Sub
< /code>
c#: (mainform.cs) < /p>
private void mainform_Load(object sender, EventArgs e)
{
hdr = new cls_hdradio();

hdr.startRadio();//calls to the cls_hdradio class function
}

private void cmdSeekPrev_Click(object sender, EventArgs e)
{
hdr.cmdSeekPrev();//calls to the cls_hdradio class function
}

private void cmdTuneDown_Click(object sender, EventArgs e)
{
hdr.cmdTuneDown(); //calls to the cls_hdradio class function
}
< /code>
Что мне не хватает или забываю сделать здесь? Это просто обработчик событий, который не вызывается для тех команд, которые вызываются в этих событиях клика. /> hdradiocore_hdradioevent_tuner_seeking < /p>
< /blockquote>
Но это никогда не происходит в версии C#. < /p>

Подробнее здесь: https://stackoverflow.com/questions/795 ... -but-not-c
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»