2016-10-03 7 views
-3

Может ли кто-нибудь помочь мне преобразовать этот код C# в vb?CODE CONVERSION C# TO VB

Я сталкиваюсь с проблемой, когда я запускаю свой проект, может ли кто-нибудь помочь мне решить эту проблему? код работает нормально в C#, но когда я пытаюсь это сделать в vb, он выдает ошибку ЗАЯВЛЕНИЕ ОБЩЕСТВЕННОГО СОБЫТИЯ, ВЫБРАННОЕ ИСПОЛЬЗУЕМОЕ И СОБЫТИЕ, И НЕ МОЖЕТ БЫТЬ ПРИЗЫВЫ НЕПОСРЕДСТВЕННО, ИСПОЛЬЗУЙТЕ ЗАЯВЛЕНИЕ «ПОДНИМАЮЩЕЕ СОБЫТИЕ», ЧТОБЫ ПОДНИМАТЬ СОБЫТИЕ. Проблема заключается в том, как преобразовать этот синтаксис C# ItemNameComboBox.SelectedValueChanged - = ItemNameComboBox_SelectedValueChanged; в синтаксис vb?

Вот код;

Private Sub ItemNameComboBox_MouseClick(sender As Object, e As MouseEventArgs) Handles ItemNameComboBox.MouseClick 
    LoadDataIntoItemComboBox() 

    ItemNameComboBox.SelectedValueChanged -= ItemNameComboBox_SelectedValueChanged 

    ItemNameComboBox.DisplayMember = "ItemName" 
    ItemNameComboBox.ValueMember = "Unit_Price" 

    ItemNameComboBox.SelectedValueChanged += ItemNameComboBox_SelectedValueChanged 
End Sub 

Private Sub ItemNameComboBox_SelectedValueChanged(sender As Object, e As EventArgs) Handles ItemNameComboBox.SelectedValueChanged 

    Dim ProductPrice As Decimal = Convert.ToDecimal(ItemNameComboBox.SelectedValue) 
    UnitPriceTextBox.Text = ProductPrice.ToString() 

End Sub 
+1

В C# вы используете '+ =' и '- =' для регистрации и отмены регистрации обработчиков событий. В VB вы используете 'AddHandler' и' RemoveHandler'. – jmcilhinney

+0

Спасибо Много работало отлично. jmcilhinney – Omer

+1

Вы всегда должны принять ответ, когда проблема будет устранена. Если никто не дал ответа, который разрешил проблему, напишите ее и примите. Таким образом, всем известно, что проблема решена и, если они сами ищут помощь, как это было сделано. Я сам не дал ответа, потому что мне не хотелось писать все это. Вы уже это сделали, так что это просто копирование и вставка. – jmcilhinney

ответ

0

Я решил проблему и хотел бы поделиться решением на тот случай, если кто-либо другой испытает ту же проблему. хорошо в C# мы используем для записи - = для отключения события и + = для включения события, например. этот код отключит событие

ItemNameComboBox.SelectedValueChanged -= ItemNameComboBox_SelectedValueChanged; 

и этот код позволит событие.

ItemNameComboBox.SelectedValueChanged -= ItemNameComboBox_SelectedValueChanged; 

СООБЩЕНИЕ трансформируя их ЛИНИЯ коды из C# VB.NET ДЛЯ В VB мы используем AddHandler вместо + = включить или зарегистрировать событие и аналогично RemoveHandler вместо - = отключить или отменить событие. Так синтаксис VB для приведенного выше кода, чтобы отключить событие будет

RemoveHandler ItemNameComboBox.SelectedValueChanged, New EventHandler(AddressOf ItemNameComboBox_SelectedValueChanged) 

и для того, чтобы это событие

AddHandler ItemNameComboBox.SelectedValueChanged, New EventHandler(AddressOf ItemNameComboBox_SelectedValueChanged) 

надежду я ответил на этот вопрос.

+0

Вы добавили ответ, который хорош, но вы его не приняли. – jmcilhinney

+0

Да, я щелкнул знак признака, но он говорит: «ВЫ МОЖЕТЕ ПРИНИМАТЬ ВАШ ОТВЕТ В ДВЕ ДНЯ». – Omer

+0

Я вижу. Я не знал об этом. – jmcilhinney