' ' Name: ' ' DynamicTextBoxes ' ' Description: ' ' Simple example of how to create and use textboxes at run time. The number of rows and ' columns of textboxes are defined by ROWS and COLS. The spacing between controls is defined ' by XPAD and YPAD. The control size is defined by TBWIDTH and TBHEIGHT and the location of ' the control at the top left is defined by XSTART and YSTART. ' ' Audit: ' ' 2012-05-20 Reverend Jim ' Public Class Form1 Const XPAD = 5 'horizontal spacing between controls Const YPAD = 5 'vertical spacing between controls Const ROWS = 5 'number of rows of textboxes Const COLS = 5 'number of columns of textboxes Const TBWIDTH = 100 'text box width Const TBHEIGHT = 20 'text box height Const XSTART = 10 'x position of first text box Const YSTART = 10 'y position of first text box Private boxes(ROWS, COLS) As TextBox Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Dim newbox As TextBox 'create a grid of textboxes For row As Integer = 0 To ROWS - 1 For col As Integer = 0 To COLS - 1 'calculate the position of the nex textbox Dim xpos As Integer = XSTART + row * (XPAD + TBWIDTH) Dim ypos As Integer = YSTART + col * (YPAD + TBHEIGHT) 'create a new textbox and set its properties newbox = New TextBox newbox.Size = New Drawing.Size(TBWIDTH, TBHEIGHT) newbox.Location = New Point(xpos, ypos) newbox.Name = "TextBox" & row & "_" & col newbox.Text = newbox.Name 'connect it to handlers, save a reference to the array and add it to the form controls AddHandler newbox.TextChanged, AddressOf TextBox_TextChanged AddHandler newbox.Enter, AddressOf TextBox_Enter boxes(row, col) = newbox Me.Controls.Add(newbox) Next Next End Sub Private Sub TextBox_TextChanged(sender As System.Object, e As System.EventArgs) 'when you modify the contents of any textbox, the name of that textbox and 'its current contents will be displayed in the title bar Dim box As TextBox = DirectCast(sender, TextBox) Me.Text = box.Name & ": " & box.Text End Sub Private Sub TextBox_Enter(sender As System.Object, e As System.EventArgs) 'when you enter a textbox control, its current contents will be displayed 'in the title bar Dim box As TextBox = DirectCast(sender, TextBox) Me.Text = box.Name & ": " & box.Text End Sub End Class
Are you able to help answer this sponsored question?
Questions asked by members who have earned a lot of community kudos are featured in order to give back and encourage quality replies.