【问题标题】:How do I convert textBox to int and then do simple math with it in visual studio 2019?如何将 textBox 转换为 int,然后在 Visual Studio 2019 中使用它进行简单的数学运算?
【发布时间】:2019-07-23 00:40:20
【问题描述】:

Visual Studio 非常新,在 2019 版本中更是如此。刚刚启动了一个 Windows 窗体应用程序(.net 框架),并且想知道如何从 textBox 中获取某些内容,将其转换为 int,进行一些简单的数学运算,然后将结果放入标签中。事情是,我没有找到太多,我几乎没有铅。当我双击标签时会发生以下情况:

Private Sub PTotal_Click(sender As Object, e As EventArgs) Handles PTotal.Click

End Sub

因此,我想要两件事:一,我需要从几个文本框中添加各种数字并使其出现在标签上;二,而不是在单击时发生,我需要它连续发生(我可以工作在它周围)

感谢您的帮助!

【问题讨论】:

  • TextBox.TextChanged, Int32.TryParse。请参阅那里的示例。
  • 控件的Text 属性是String 进出的地方。这才是关键。您对 String 所做的操作与他的控制无关,反之亦然。从控件获取数据或将数据导入控件与您在代码中对该数据执行的操作无关,因此请分别对待它们并为每个控件使用适当的搜索关键字。 Textboxes 与对数字执行的数学运算完全为零。

标签: .net vb.net winforms


【解决方案1】:

当您在设计视图中双击一个控件时,您会在代码窗口中看到一个事件过程存根。你得到的是标签的 Click 事件。单击标签时,放置在此子项中的代码将运行。不是您的任务所需的事件。

您可能希望用户在准备好进行计算时单击 Button 控件。在设计器属性窗口中调用按钮 btnCalculate。然后双击该按钮以获取 Click 事件的存根。

Private Sub BtnCalculate_Click(sender As Object, e As EventArgs) Handles btnCalculate.Click
    Dim number = CInt(TextBox1.Text)
    PTotal.Text = (number * 10).ToString()
End Sub

现在,如果用户在文本框中输入他们的名字而不是数字,会发生什么?崩溃砰!所以我们可以先检查一下我们是否有一个有效的号码。

Private Sub BtnCalculate_Click(sender As Object, e As EventArgs) Handles btnCalculate.Click
    Dim number As Integer
    If Integer.TryParse(TextBox1.Text, number) Then
        PTotal.Text = (number * 10).ToString()
    Else
        MessageBox.Show("Please enter a valid number.")
    End If
End Sub

Integer.TryParse 方法有 2 个参数。首先是要测试的字符串,其次是保存转换后的值的变量。如果解析成功,则返回 True,因此我们可以将其用作 If 语句中的条件。

【讨论】:

    【解决方案2】:
    ' get textBox1 Text Data
    Dim textData As String = textBox1.Text
    
    ' string to int
    Dim intTextData As Integer = Convert.ToInt32(textData)
    
    ' do something
    
    ' int data to label text
    label1.Text = Convert.ToString(intTextData)
    

    ' get textBox1 Text Data
    Dim textData As String = textBox1.Text
    
    Dim intTextData As Integer
    
    ' string to int
    If Integer.TryParse(textData, intTextData) Then
        ' Conversion Successful
    
        ' do something
    
        ' int data to label text
        label1.Text = Convert.ToString(intTextData)
    Else
        'Conversion failed
    End If
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-09
      • 2013-05-22
      • 2021-08-29
      • 2021-07-14
      • 1970-01-01
      • 2020-06-13
      相关资源
      最近更新 更多