代码转换C#到VB

时间:2016-10-03 04:43:45

标签: c# vb.net

任何人都可以帮我将这个c#代码转换为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 个答案:

答案 0 :(得分: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)
希望我已经回答了这个问题。