VB.NET 动态控件 属性问题 5

我在界面上添加两个button,运行后按button1,添加5个textbox动态控件。怎样才能实现按button2,将5个textbox中的值赋给其他的变量呢?在but... 我在界面上添加两个button,运行后按button1,添加5个textbox动态控件。怎样才能实现按button2,将5个textbox中的值赋给其他的变量呢?在button2下写赋值代码时还没生成动态控件啊。 展开
 我来答
包布丁
2014-01-18 · TA获得超过1358个赞
知道小有建树答主
回答量:1435
采纳率:25%
帮助的人:1227万
展开全部
布局方面,建议你用FlowLayoutPanel,不用手工控制控件位置了。假设有一个FlowLayoutPanel1。
先在窗体类中建一个控件的集合:
Dim TextBoxes As New List(Of TextBox)
在button1的Click事件中写:
For i = 1 To 5 '5是每次加入的数量
Dim newTextBox As New TextBox()
'newTextBox.Size = New Size(100,20) '
TextBoxes.Add(newTextBox) '加入我们的集合中
FlowLayoutPanel1.Controls.Add(newTextBox) '加到窗体的FlowLayoutPanel中去
Next i
然后button2的Click事件中:
For Each itemTextBox As TextBox In TextBoxes
'这里的itemTextBox.Text就代表每个TextBox里的文本
'如果你需要清空,调用TextBoxes.Clear()和FlowLayoutPanel.Controls.Clear()即可
Next
xiansr
2014-01-18 · TA获得超过278个赞
知道小有建树答主
回答量:313
采纳率:100%
帮助的人:263万
展开全部

Public Class Form1
    Dim tb1 As New TextBox
    Dim tb2 As New TextBox

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        tb1.Location = New Point(50, 100)
        tb2.Location = New Point(50, 150)
        Me.Controls.Add(tb1)
        Me.Controls.Add(tb2)
    End Sub

    Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
        Dim bl1 As String
        Dim bl2 As String
        If Me.Controls.Contains(tb1) Then
            bl1 = tb1.Text
            bl2 = tb2.Text
        Else
            bl1 = ""
            bl2 = ""
            MessageBox.Show("the textbox does not exist.")
        End If
    End Sub
End Class

追问
如果是新建50个Textbox怎么办?这种方法太不方便了吧?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
FMUD1
2014-01-18 · TA获得超过1008个赞
知道大有可为答主
回答量:1289
采纳率:71%
帮助的人:907万
展开全部
设置动态控件为全局变量,或者在创建的控件被添加到窗体后,调用窗体的控件集合,索引为控件集合的最后五个值,得到5个textbox。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式