【问题标题】:Assigning a variable to a textBox once it has been declared声明变量后将其分配给文本框
【发布时间】:2014-01-23 05:49:24
【问题描述】:

我是 VB 的新用户,想知道为什么下面的代码没有给出我正在寻找的答案:

Dim name, orderNumber, cityStateZip, address As String
name = nameTextBox.text
orderNumber = orderNumberTextBox.Text
cityStateZip = cityStateZipTextBox.Text
address = addressTextBox.Text

if (name = "" OrElse orderNumber = "" OrElse cityStateZip = "" OrElse address = "") Then
    MessageBox.Show("Please enter a Salesperson's name", "Input Error",
                        MessageBoxButtons.OK, MessageBoxIcon.Error)
End If

上面的代码不会显示 MessageBox。但是,如果我将所有变量(名称、订单号等)“调暗”,它就会起作用。

我想知道为什么会这样?

【问题讨论】:

  • 将您的代码复制并粘贴到 Button_Click 事件中。对于空文本框,它会编译并显示一个 MessageBox。因此,您的代码中似乎还有其他问题。
  • 你能编译代码吗?如果不关闭选项,请严格您的项目属性。
  • 如果如您所说,声明它们每个都有效,那么如果它解决了您的问题,为什么不这样做呢?或者尝试name Is Nothing 并使用Or 而不是OrElse
  • 大家好,感谢您的回答! @AdorableVB 我只是在询问为什么它对我不起作用。

标签: vb.net


【解决方案1】:
Dim name, orderNumber, cityStateZip, address As String
name = nameTextBox.text
orderNumber = orderNumberTextBox.Text
cityStateZip = cityStateZipTextBox.Text
address = addressTextBox.Text

不一样

Dim name = nameTextBox.text
Dim orderNumber = orderNumberTextBox.Text
Dim cityStateZip = cityStateZipTextBox.Text
Dim address = addressTextBox.Text

后者使用隐式类型,或者编译器从上下文中获取类型。根据分配给它的变量的类型,类型是隐含的。即nameTextBox.text 属性是一个字符串,编译器会计算出来,并且您将name 变量隐式类型为字符串。您可以像在原始代码中一样显式键入它们。但是,为了可读性,您可以使用以下方法:

Dim name As String = nameTextBox.text
Dim orderNumber As String = orderNumberTextBox.Text
Dim cityStateZip As String = cityStateZipTextBox.Text
Dim address As String = addressTextBox.Text

说了这么多,我想不出你需要单独调暗它们的任何理由(如果我理解正确的话),并且所有这些方法在你的代码中应该有效地工作。

【讨论】:

    【解决方案2】:

    这样试试

    Dim name As String
    Dim orderNumber As String
    Dim cityStateZip As String
    Dim address As String
    
    orderNumber = Me.orderNumberTextBox.Text
    cityStateZip = Me.cityStateZipTextBox.Text
    address = Me.addressTextBox.Text //  "Me" refers to the current form
    

    【讨论】:

    • 嘿,感谢您的回答,但是我知道如何使它起作用,我想知道为什么上述方法(来自 op)不起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-13
    • 2012-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-22
    • 1970-01-01
    相关资源
    最近更新 更多