代码转换c#到vb

本文关键字:vb 转换 代码 | 更新日期: 2023-09-27 18:11:17

谁能帮我把这个c#代码转换成vb?

我面临的问题,每当我运行我的项目,谁能帮助我解决这个问题?代码在c#中工作得很好,但是当我在vb中尝试这个时,它会抛出错误公共事件SELECTEDVALUECHANGED is和事件,不能直接调用,使用'RAISE EVENT'语句来引发事件。问题是如何转换这个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

代码转换c#到vb

我已经解决了这个问题,并希望分享解决方案,以防其他人遇到同样的问题。在c#中,我们用-=来禁用一个事件,用+=来启用一个事件。这段代码将禁用事件

ItemNameComboBox.SelectedValueChanged -= ItemNameComboBox_SelectedValueChanged;

,此代码将启用该事件。

ItemNameComboBox.SelectedValueChanged -= ItemNameComboBox_SelectedValueChanged;

现在将这行代码从c#转换为VB。网在vb中,我们使用AddHandler而不是+=来启用或注册事件,类似地,使用RemoveHandler而不是-=来禁用或取消注册事件。所以上面代码禁用事件的vb语法将是

RemoveHandler ItemNameComboBox.SelectedValueChanged, New EventHandler(AddressOf ItemNameComboBox_SelectedValueChanged)

和启用事件

AddHandler ItemNameComboBox.SelectedValueChanged, New EventHandler(AddressOf ItemNameComboBox_SelectedValueChanged)

希望我已经回答了这个问题。