使用创建的按钮控件显示创建的文本框值 [英] Using created button controls to display the created textbox value

查看:63
本文介绍了使用创建的按钮控件显示创建的文本框值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

请帮助我使用多个创建的按钮同时获取多个创建的textbox文本.text



 公开  Form1 


Dim txtadd1 作为 TextBox()
Dim txtadd2 作为 TextBox()
Dim txtadd3 作为 TextBox()
< span class =code-keyword> Dim txtadd4 作为 TextBox()
Dim txtadd5 作为 TextBox( )
Dim Buttonadd5 作为 按钮()



私有 Sub Form1_Load( ByVal 发​​件人作为 对象 ByVal e As System.EventArgs)句柄 .Load

Dim Paneladd 作为 Panel
Me .Controls.Add(Paneladd)

For i = 0 10

Paneladd.Top = 0
Paneladd.Height = 25
Paneladd.Dock = DockStyle.Top

txtadd1 = TextBox
txtadd1.Name = txtadd1 +(i).ToString
txtadd1.Text = txtadd1 +(i).ToString
txtadd1.Left = 0
txtadd1.Size = System.Drawing.Size( 100 10
txtadd1.Enabled = False

txtadd2 = TextBox
txtadd2.Name = txtadd2 +(i).ToString
txtadd2.Text = txtadd2 +(i).ToString
txtadd2.Left = 100
txtadd2.Size = System.Drawing.Size( 100 10
txtadd2.Enabled = False

Buttonadd5 = 按钮
Buttonadd5.Name = Buttonadd +(i).ToString
Buttonadd5.Text = dr.GetValue( 0 )。ToString()
Buttonadd5.Left = 500
' Buttonadd5.Size = New System.Drawing.Size(100,10)
Buttonadd5.TextAlign = Horizo​​ntalAlignment.Center

下一步
Panel3.Controls.Add(Paneladd)
Paneladd.Controls.Add(txtadd1)
Paneladd.Controls.Add(txtadd2)
Paneladd.Controls.Add(txtadd3)
Paneladd.Controls.Add(txtadd4)
Paneladd.Controls.Add(txtadd5)
Paneladd.Controls.Add(Buttonadd5)

结束 Sub

解决方案

如果你所追求的是按动态创建的按钮并访问事件处理程序中相关的动态创建的文本框,那么它非常简单:只需使用Tag属性:

< pre lang =vb> 私有 Sub AddControls()
...
Dim panellAdd As Panel()
For i As 整数 = 1 9
Dim tb1 As TextBox()
Dim tb2 作为 TextBox()
Dim b 作为 按钮()
b .Tag = tb1
tb1.Tag = tb2
b。点击+ = EventHandler( AddressOf b_Click)
...
panellAdd.Controls.Add(tb1)
panellAdd.Controls.Add(tb2 )
panellAdd.Controls.Add(b)
下一步
...
结束 Sub

私有 Sub b_Click(发件人作为 对象,e As EventArgs)
Dim b As Button = TryCast (发件人,按钮)
如果 b IsNot Nothing 然后
Dim tb1 作为 Tex tBox = TryCast (b.Tag,TextBox)
Dim tb2 As TextBox = TryCast (tb1.Tag,TextBox)
...
结束 如果
结束







错误'公共事件点击(发件人) As Object,e As System.EventArgs)'是一个事件,不能直接调用。使用'RaiseEvent'语句来举起活动。

 b.Click + = New EventHandler(AddressOf b_Click)



我得到一个错误




抱歉 - 我用C#编写并使用了自动翻译器 - 忘了检查那个位:doh:

将行换成:

  AddHandler  b。点击, AddressOf  b_Click 


please help me the with the multiple created button the get simultaneously value of the multiple created textbox.text

Public Class Form1


    Dim txtadd1 As New TextBox()
    Dim txtadd2 As New TextBox()
    Dim txtadd3 As New TextBox()
    Dim txtadd4 As New TextBox()
    Dim txtadd5 As New TextBox()
    Dim Buttonadd5 As New Button()



    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
                  
                Dim Paneladd As New Panel
                Me.Controls.Add(Paneladd)

                For i = 0 To 10

                    Paneladd.Top = 0
                    Paneladd.Height = 25
                    Paneladd.Dock = DockStyle.Top

                    txtadd1 = New TextBox
                    txtadd1.Name = "txtadd1" + (i).ToString
                    txtadd1.Text = "txtadd1" + (i).ToString
                    txtadd1.Left = 0
                    txtadd1.Size = New System.Drawing.Size(100, 10)
                    txtadd1.Enabled = False

                    txtadd2 = New TextBox
                    txtadd2.Name = "txtadd2" + (i).ToString
                    txtadd2.Text = "txtadd2" + (i).ToString
                    txtadd2.Left = 100
                    txtadd2.Size = New System.Drawing.Size(100, 10)
                    txtadd2.Enabled = False

                    Buttonadd5 = New Button
                    Buttonadd5.Name = "Buttonadd" + (i).ToString
                    Buttonadd5.Text = dr.GetValue(0).ToString()
                    Buttonadd5.Left = 500
                    'Buttonadd5.Size = New System.Drawing.Size(100, 10)
                    Buttonadd5.TextAlign = HorizontalAlignment.Center

                                   Next
                Panel3.Controls.Add(Paneladd)
                Paneladd.Controls.Add(txtadd1)
                Paneladd.Controls.Add(txtadd2)
                Paneladd.Controls.Add(txtadd3)
                Paneladd.Controls.Add(txtadd4)
                Paneladd.Controls.Add(txtadd5)
                Paneladd.Controls.Add(Buttonadd5)
                   
         End Sub

解决方案

If what you are after is "press a dynamically created button and access the related dynamically created Textboxes in the event handler" then it's pretty simple: just use the Tag property:

Private Sub AddControls()
    ...
    Dim panellAdd As New Panel()
    For i As Integer = 1 To 9
        Dim tb1 As New TextBox()
        Dim tb2 As New TextBox()
        Dim b As New Button()
        b.Tag = tb1
        tb1.Tag = tb2
        b.Click += New EventHandler(AddressOf b_Click)
        ...
        panellAdd.Controls.Add(tb1)
        panellAdd.Controls.Add(tb2)
        panellAdd.Controls.Add(b)
    Next
    ...
End Sub

Private Sub b_Click(sender As Object, e As EventArgs)
    Dim b As Button = TryCast(sender, Button)
    If b IsNot Nothing Then
        Dim tb1 As TextBox = TryCast(b.Tag, TextBox)
        Dim tb2 As TextBox = TryCast(tb1.Tag, TextBox)
        ...
    End If
End Sub




"Error 'Public Event Click(sender As Object, e As System.EventArgs)' is an event, and cannot be called directly. Use a 'RaiseEvent' statement to raise an event.

b.Click += New EventHandler(AddressOf b_Click)


im getting an error"


Sorry - I wrote it in C# and used an automatic translator - and forgot to check that bit :doh:
Replace the line with:

AddHandler b.Click, AddressOf b_Click


这篇关于使用创建的按钮控件显示创建的文本框值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆