Creëer controls

Status
Niet open voor verdere reacties.

retsech

Gebruiker
Lid geworden
16 mei 2008
Berichten
95
Hoi,
Ik zou graag een manier/code willen om tijdens het afspelen van mijn applicatie controls kunnen aanmaken. Dat ik bijvoorbeeld doormiddel van een command button een control kan maken, een type van de control aanbieden zoals een picturebox, command, frame, container enz. Daarnaast ze ook een naam kunnen geven.

Alvast bedankt :D:thumb:
 
Ik programmeer zelf vooral in Java, en heb geen idee of dit uberhaupt lijkt op VB. (structuur qua klasses, objecten etc.) Zo ja, dan zou ik wel iets kunnen verzinnen denk ik ;)
 
Dit maakt een knop op je programma en als je erop klikt, krijg je een msgbox:

Code:
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Create_Button()
    End Sub

    Private Sub Create_Button()
        Dim NewButton As New Button

        'Text
        NewButton.Text = "New Button"

        'Positie
        NewButton.Top = 100
        NewButton.Left = 100
        

        'Toevoegen aan Form1
        Me.Controls.Add(NewButton)


        'Click Event
        AddHandler NewButton.Click, New System.EventHandler(AddressOf NewButton_Click)

    End Sub

    Private Sub NewButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        MsgBox("NewButton_Click!")
    End Sub
End Class
 
Ik heb misschien een idee om een control in allerlei soorten types te maken, alleen moet ik weten hoe je een control een index kunt geven, weet je misschien hoe dat moet?
Ik kom uit een VB6 background en ik heb in .NET's propertie's bar niks kunnen vinden dat ermee te maken had.
 
Uhmm...

Onder Public Class Form1:
Code:
Dim Buttons As List( Of Buttons) 'ofzoiets

En bij de Create_Button event:
Code:
Buttons.Add(NewButton)
 
Nee ik bedoel, ik heb een andere manier om controls tijdens runtime aan te maken.
Alleen ik heb hiervoor een manier nodig om een control in de visuele editor een index te geven, heelaas kan ik daar geen optie voor vinden in de properties menu.
 
Edit:

Ik heb misschien een andere vraag die misschien de oplossing van mijn probeem zou zijn,
Is het mogelijk om een naam te beschrijven die het programma kan gebruiken? Bijvoorbeeld,

Je hebt een textbox met de naam "Text1", ik wil dat mijn programma die textbox inhoud weergeeft in een messagebox, dus het zou zo moeten gaan MsgBox(Text1.text)
In deze situatie kan ik niet direct de naam aangeven, daarom zou ik de naam willen beschrijven, bijvoorbeeld iets als dit:

Msgbox(Text & 1)

Natuurlijk werkt deze niet, dus heb je misschien een goede?:)
Hopelijk was me voorbeeld duidelijk genoeg:thumb:
 
Als ik het zo lees, denk ik dat je bij de properties wil kunnen.

Als dat zo is, dan moet je die code hebben in mijn vorige post. Dan zou je dit moeten krijgen:

Code:
Public Class Form1
    Private TextBoxList As New List(Of TextBox)

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Create_TextBox()
    End Sub

    Private Sub Create_TextBox()
        Dim NewTextBox As New TextBox

        Me.Controls.Add(NewTextBox)
        NewTextBox.Left = 100
        NewTextBox.Right = 100
        TextBoxList.Add(NewTextBox)

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        MsgBox(TextBoxList(0).Text)

    End Sub
End Class
 
Laatst bewerkt:
Hardstikke bedankt hij doet het :thumb::):):)

Ik ga de code even uit proberen in mijn applicatie, als hij het doet is de vraag opgelost:)
 
Ik heb het geprobeerd bij mijn oude applicatie (die van mij was een oude VB6 geconverted naar .NET 08), en nu krijg ik de volgende error "Type 'list' is not defined".
 
Maar hij zou het toch moeten doen aangezien ik hem nu in .NET maak?
 
Hij doet het!
Is het ook mogeijk om een aangemaakte control te creeeren binnen in een frame/picturebox/panel?
 
In plaats van: Me.Controls.Add(NewTextBox) -> Panel1.Controls.Add(NewTextBox)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan