Solved

vb.net dynamic control creation

Posted on 2004-08-02
3
9,763 Views
Last Modified: 2013-12-27
I'm developing an application in VB.NET on compact framework.

I'm creating a form with a variable number of controls, so i must create then at runtime. In vb6 i can create an array of controls and increment it. But not in vb.net.

so i need to create controls (textbox and combobox) giving then a name but how?
i can't declare something like  << dim "textbox_12" as new textbox >> obviously

i tried

        For i = 0 To 10
            Dim newcontrol As New TextBox
            newcontrol.Top = 20 * i
            Me.Controls.Add(newcontrol)
        Next i

and it adds the controls to the form how can i manage then? How do i know what there is in textbox_12?
i could cycle in me.controls, but i can't identify the right control because "name" property is not supported in compact framework...
0
Comment
Question by:illu666
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
3 Comments
 
LVL 48

Expert Comment

by:Mikal613
ID: 11697380
I dont think you can but  here is the hack for EVB maybe you can use that Idea.

http://devbuzz.com/content/zinc_eVB_simulating_dynamic_ctrls_pg1.asp
0
 
LVL 10

Expert Comment

by:prakash_prk
ID: 11733159

You can declare all the required controls as private members

when you need the control create an instance for it .write the code for its event handlers .Attach it to eventhandler when you  want it



0
 
LVL 10

Accepted Solution

by:
prakash_prk earned 125 total points
ID: 11733236
Try this code

If you need the name property why are you inherit the control.

------------------------------------------------------

Imports System.IO

Public Class Form2
    Inherits System.Windows.Forms.Form

    Friend WithEvents Button1 As System.Windows.Forms.Button

    Dim TextBoxes(10) As MyTextBox  'Dont Create Instances
    Dim i As Integer = 0

#Region " Windows Form Designer generated code "

    Public Sub New()

        MyBase.New()

        'This call is required by the Windows Form Designer.
        InitializeComponent()

        'Add any initialization after the InitializeComponent() call

    End Sub

    'Form overrides dispose to clean up the component list.
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        MyBase.Dispose(disposing)
    End Sub

    'NOTE: The following procedure is required by the Windows Form Designer
    'It can be modified using the Windows Form Designer.  
    'Do not modify it using the code editor.
    Private Sub InitializeComponent()
        Me.Button1 = New System.Windows.Forms.Button
        '
        'Button1
        '
        Me.Button1.Location = New System.Drawing.Point(200, 320)
        Me.Button1.Size = New System.Drawing.Size(80, 24)
        Me.Button1.Text = "Button1"
        '
        'Form2
        '
        Me.ClientSize = New System.Drawing.Size(282, 351)
        Me.Controls.Add(Me.Button1)
        Me.Text = "Form1"

    End Sub
#End Region


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        TextBoxes(i) = New MyTextBox
        TextBoxes(i).Location = New Point(10, 10 + i * 20)
        TextBoxes(i).Size = New Size(100, 20)
        TextBoxes(i).Name = "Text" & i
        Me.Controls.Add(TextBoxes(i))
        AddHandler TextBoxes(i).TextChanged, AddressOf TextBoxex_TextChanged
        i += 1
    End Sub


    Private Sub TextBoxex_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)

        Dim TempVar As MyTextBox
        TempVar = DirectCast(sender, MyTextBox)
        MsgBox(TempVar.Name)
    End Sub

End Class

Public Class MyTextBox
    Inherits TextBox
    Private _Name As String

    Public Sub New()
        MyBase.New()
    End Sub

    Public Property Name() As String
        Get
            Return _Name
        End Get
        Set(ByVal Value As String)
            _Name = Value
        End Set
    End Property

End Class
------------------------------------------------
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article shows how to setup the internet connectivity on Windows Mobile Emulator.   I assume that you already have Microsoft Visual Studio, Microsoft Windows Mobile SDK's and the emulator installed. The emulator is available with Visual Studi…
You should read OS supplied guidelines before developing. I can't stress that enough. The guidelines will help you understand the reasons mobile app developers do what they do.  Apple is very particular when they review appstore submissions.
If you're a developer or IT admin, you’re probably tasked with managing multiple websites, servers, applications, and levels of security on a daily basis. While this can be extremely time consuming, it can also be frustrating when systems aren't wor…
There's a multitude of different network monitoring solutions out there, and you're probably wondering what makes NetCrunch so special. It's completely agentless, but does let you create an agent, if you desire. It offers powerful scalability …

691 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question