代码转换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#中,我们用-=来禁用一个事件,用+=来启用一个事件。这段代码将禁用事件
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)
希望我已经回答了这个问题。