【问题标题】:visual basic.. I want to make a TextBox2 visible when TextBox1.text = "SHUTDOWN"visual basic .. 我想让 TextBox2 在 TextBox1.text = "SHUTDOWN" 时可见
【发布时间】:2014-01-25 01:27:09
【问题描述】:

在 Visual Basic 中, 我想让TextBox2TextBox1.Text = "SHUTDOWN" 时可见

这是我的代码

Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) 
                                                     Handles TextBox1.TextChanged
    AcceptButton = Button1
    If TextBox1.Text = "SHUTDOWN" Then
        TextBox2.Visible = True
    End If
End Sub

但它不起作用

注意:没有错误消息...并且 textbox1 字符大小写为“上部”,因此它将为“SHUTDOWN”并且不工作意味着当我在 textbox1 中写入“SHUTDOWN”时,textbox2 不会变得可见

【问题讨论】:

  • 任何错误信息?区分大小写 "SHUTDOWN" 不等于 VB 中的 "shutdown"。
  • 请具体说明您在TextBox1 中输入的具体内容,以及“不工作”的具体含义。
  • 没有错误消息...并且 textbox1 字符大小写为“上部”,因此它将为“SHUTDOWN”并且不工作意味着当我在 textbox1 中写入“SHUTDOWN”时,textbox2 不会变得可见

标签: vb.net visual-studio-2010 visual-studio vba string-comparison


【解决方案1】:

.NET 区分大小写,这意味着shutdownSHUTDOWN 不同。您可以将Equals 与采用StringComparison 的重载一起使用:

If TextBox1.Text.Equals("SHUTDOWN", StringComparison.CurrentCultureIgnorecase) Then
    TextBox2.Visible = True
End If

仅在 VB.NET 中的另一个选项是在文件或项目级别上使用 OPTION Compare

如果您将此作为文件的第一行:

Option Compare Text

你得到一个不区分大小写的比较。但是,我更喜欢 .NET 方式。

文本:基于不区分大小写的文本排序产生字符串比较 顺序由系统的语言环境决定。这种比较是 如果您的字符串包含所有文本字符,并且您想要 考虑字母等价性(例如大小写)比较它们 不敏感和密切相关的字母。例如,您可能想要 认为 A 和 a 相等,并且 Ä 和 ä 在 B 和 b 之前。

【讨论】:

    【解决方案2】:
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
    Textbox2.visible = False
    
    End Sub
    
    
    Protected Sub TxtBox1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TxtBox1.TextChanged
        If TxtBox1.Text.ToUpper = "SHUTDOWN" Then
           TextBox2.Visible = True
        Else
           TextBox2.Visible = False
        End If
    End Sub
    

    【讨论】:

      【解决方案3】:

      要忽略文本的大小写(如果这是问题),您可以使用以下内容:

      If TextBox1.Text.ToUpper() = "SHUTDOWN" Then
          TextBox2.Visible = True
      End If
      

      还要确保您的TextBox2 在可见时具有正确的坐标

      【讨论】:

      • 您是否尝试在“If TextBox1.Text.ToUpper() = "SHUTDOWN" Then" 行设置断点?
      【解决方案4】:

      刚刚做了一个测试:

          Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
          If (TextBox1.Text = "SHUTDOWN") Then
              TextBox2.Visible = True
          End If
      End Sub
      

      没有发现问题 - 可能是 AcceptButton = Button1。我不确定为什么它不工作,但是当输入“SHUTDOWN”时我的工作正常。尝试将 AcceptButton 更改为注释 ('),然后尝试代码,如果有效,则为 AcceptButton 变量。

      可能不声明可能存储一个按钮?

      【讨论】:

        【解决方案5】:
        Dim Wrd As String = "SHUTDOWN"
        Protected Sub TxtBox1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TxtBox1.TextChanged
                If Wrd = TxtBox1.Text.ToUpper Then
                    TxtBox5.Visible = True
                 End If
        End Sub
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多