【发布时间】:2020-06-17 08:54:36
【问题描述】:
我想在 vb.net 表单应用程序中创建一个简单的加法程序。我也想以编程方式创建所有控件。我有三个文本框和一个按钮。单击按钮时,它从两个文本框中获取值并将其分配给第三个文本框值。 我无法从按钮单击句柄中获取文本框字符串。
我的编码如下:
Public Class Form1
Public Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'Pushbutton
Dim PushButton As New Button()
PushButton.Text = "Add"
PushButton.Location = New Point(10, 100)
Me.Controls.Add(PushButton)
AddHandler PushButton.Click, AddressOf myButtonHandler_Click
'
'TextBox1
Dim TextBox1 As New TextBox
TextBox1.Location = New Point(10, 3)
Me.Controls.Add(TextBox1)
'TextBox2
Dim TextBox2 As New TextBox
TextBox2.Location = New Point(200, 3)
Me.Controls.Add(TextBox2)
Dim TextBox3 As New TextBox
TextBox3.Location = New Point(200, 100)
Me.Controls.Add(TextBox3)
End Sub
Private Sub myButtonHandler_Click(ByVal sender As Object, ByVal e As EventArgs)
End Sub
Public Function ADD(x As Double, y As Double) As Double
ADD = x + y
End Function
End Class
【问题讨论】:
-
将您的控件声明为实例字段并使用double.TryParse() 验证输入。可能的话,给这些控件起有意义的名字。或者使用一个类对象来生成所有需要的部分(包括控件),其中包含所有需要的逻辑(包括
Add()方法),这样你就有了一个可重用的对象,你不需要乱扔你的Form。跨度> -
使用
NumericUpDown而不是TextBox,则不需要解析... -
我的问题不是这个,我无法从“Private Sub myButtonHandler_Click(ByVal sender As Object, ByVal e As EventArgs)”获取文本框值,所以如何获取这些值。
-
如果您不想将控件分配给专用字段,则可以按名称从
Controls集合中取回它们。当然,当你创建它们时,你必须给它们一个Name值。否则,您可以通过索引将它们取回。