【问题标题】:VB.Net .Clear() or txtbox.Text = "" textbox clear methodsVB.Net .Clear() 或 txtbox.Text = "" 文本框清除方法
【发布时间】:2011-04-14 19:45:59
【问题描述】:

编程不远,刚刚加入了这个强大公司的论坛,所以这是一个愚蠢的问题,但是在 VB.Net 中清除文本框的最佳方法是什么,这两种方法有什么区别?我还看到人们批评人们在他们的表格上使用清晰的对象,我明白为什么,但在这种情况下,我只是在学习。

txtbox1.Clear()

txtbox1.Text = ""

非常感谢任何帮助。

【问题讨论】:

    标签: .net vb.net winforms textbox


    【解决方案1】:

    特别是如果您想在 VB.NET 或 VB 6.0 中清除文本框,请编写以下代码:

    TextBox1.Items.Clear()

    如果您使用的是 VBA,则使用此代码:

    TextBox1.Text = "" 要么 TextBox1.Clear()

    【讨论】:

      【解决方案2】:

      如果你想清除选定的文本,然后使用我自己制作的这段代码;)

      If e.KeyCode = Keys.Delete Then
          TextBox1.SelectedText = ""
      End If
      

      就是这样

      【讨论】:

        【解决方案3】:

        这两种方法是 100% 等效的。

        我不知道为什么微软觉得需要包含这个额外的 Clear 方法,但既然它在那里,我建议使用它,因为它清楚地表达了它的目的。

        【讨论】:

        【解决方案4】:

        只需使用:TextBox1.Clear() 就可以了。

        【讨论】:

        • "...这两种方法有什么区别?" -OP
        【解决方案5】:
        Public Sub EmptyTxt(ByVal Frm As Form)
            Dim Ctl As Control
            For Each Ctl In Frm.Controls
                If TypeOf Ctl Is TextBox Then Ctl.Text = ""
                If TypeOf Ctl Is GroupBox Then
                    Dim Ctl1 As Control
                    For Each Ctl1 In Ctl.Controls
                        If TypeOf Ctl1 Is TextBox Then
                            Ctl1.Text = ""
                        End If
                    Next
                End If
            Next
        End Sub
        

        在表单中添加此代码并调用此函数

        EmptyTxt(Me)
        

        【讨论】:

          【解决方案6】:

          Clear 方法定义为

              public void Clear() { 
                  Text = null;
              } 
          

          Text 属性的设置器以

          开头
                  set { 
                      if (value == null) { 
                          value = "";
                      } 
          

          我假设这回答了你的问题。

          【讨论】:

          • 看起来微软的某个人那天过得很糟糕。这看起来很奇怪。 +1用于挖掘它。 –1 代表微软用于糟糕的文档(“清除文本框中的所有内容”——真的?)和奇怪的代码。
          • 非常感谢。响应速度给我留下了深刻的印象。再次感谢!
          • @Konrad:嗯,确实如此。你对文档有什么看法?
          • 大家好!我现在不能接受和检查答案,就像我说的那样,我是编程新手,除了清除文本之外,我仍然不确定你向我展示的代码幕后发生了什么在表单界面的文本框中。我将深入研究我的导师,了解这些方法如何与检查空引用联系起来,然后我会回来给答案打分。再次感谢:)
          • @NeverHopeless:这不是示例代码;它是 .Net 框架的实际源代码,用 C# 编写。
          【解决方案7】:

          在模块中添加此代码:

          Public Sub ClearTextBoxes(frm As Form) 
          
              For Each Control In frm.Controls
                  If TypeOf Control Is TextBox Then
                      Control.Text = ""     'Clear all text
                  End If       
              Next Control
          
          End Sub
          

          在窗体窗口中添加此代码以调用 Sub 例程:

          Private Sub Command1_Click()
              Call ClearTextBoxes(Me)
          End Sub
          

          【讨论】:

            【解决方案8】:

            Clear() 将 Text 属性设置为空。所以 txtbox1.Text = Nothing 和 clear 一样。空字符串(也可以通过 String.Empty 获得)不是空引用,但当然没有值。

            【讨论】:

            • 文档对此并不确定,所以我不会依赖这种行为保持不变。
            猜你喜欢
            • 2023-01-16
            • 2020-10-25
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-12-06
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多