启用选项严格时,Visual Basic Leave事件给出错误

时间:2016-02-21 20:36:42

标签: .net

我有这个带有8个文本框的窗体,需要进行验证。我写了这个休假程序似乎工作正常。然后我打开选项严格,现在它给出错误,我想我不明白。

完整的程序在这里:

Private Sub IsValidMeasurement(sender As Object, e As EventArgs) Handles TxtRoomTwoWidth.Leave, TxtRoomTwoLength.Leave, TxtRoomThreeWidth.Leave, TxtRoomThreeLength.Leave, TxtRoomOneWidth.Leave, TxtRoomOneLength.Leave, TxtHallwayWidth.Leave, TxtHallwayLength.Leave
    Dim valid As Boolean = Int32.TryParse(sender.Text, Sentinel)
    If valid Then
        'Do Nothing, Input was valid.
    Else
        MessageBox.Show("Please enter a number of inches.")
        sender.Text = ""
        sender.Focus()
    End If

End Sub

错误是当我尝试使用文本框的特征时:sender.Text,sender.focus()。特定错误说选项严格禁止后期绑定。我可以得到一些帮助吗?

2 个答案:

答案 0 :(得分:1)

  

(发件人为对象,e为EventArgs)

使用后期绑定 - 请参阅参考late and early bindnig 所以用简单的话说:

  

将隐式数据类型转换限制为仅扩展转化次数,   不允许后期绑定,并禁止导致的隐式输入   对象类型

所以在这种特殊情况下"使用严格"不适用于对象 也许您可以将其定义为TextBox?

参考here

答案 1 :(得分:0)

我使用的修复是,我添加的程序中的第一个语句

Dim textbox As TextBox = CType(sender, TextBox) ' explicitly cast sender from object to Textbox.

然后,我没有尝试使用sender.Text或sender.Focus(),而是通过textbox.Text和textbox.Focus()

访问它们。

不再有错误。