Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Alexandre Carmo

[Resolvido] Criar formulário dinamico

Recommended Posts

Bom dia

Pessoal é possível ao clicar em um button gerar um formulário definindo tamanho e nesse formulário já criar junto componentes como picturebox, outros buttons label e todos os componentes assim como o load do forma já criar junto códigos? como por exemplo após criar carregar o form escrever em um dos label um bem vindo e no button dele já deixar um código que exiba um MessageBox com alguma frase por exemplo? Esse form só estará exibido em tempo de execução ao fechar o programa ele morre.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui fazer algo, se alguém tiver uma idéia melhor, segue:

Public Class CriaForm
    Public Function criaForm(ByVal nome As String) As Form
        Dim f1 As New Form
        Dim botao As Button = criarbotao()
        Dim pic As PictureBox = criaPictureBox()

        f1.Text = nome.ToString
        f1.Size = New Size(900, 900)
        f1.Controls.Add(botao)
        f1.Controls.Add(pic)
        Return f1
    End Function
    Private Function criarbotao() As Button ''cria botão
        Dim btn As Button = New Button() 'declara o botão
        btn.Size = New Size(130, 25) 'define o tamanho
        btn.Location = New Point(0, 0) 'define a localização
        btn.Text = "Sensor" 'define o texto
        AddHandler btn.Click, AddressOf btn_Click
        Return btn
    End Function
    Private Sub btn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) ''evento do botão
        MessageBox.Show("Botão foi clicado")
    End Sub
    Private Function criaPictureBox() As PictureBox
        Dim pic As PictureBox = New PictureBox
        pic.Size = New Size(200, 200)
        pic.Location = New Point(0, 50)
        pic.BorderStyle = BorderStyle.Fixed3D
        Return pic
    End Function
End Class
...
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim teste As New CriaForm
        Dim formDinamico As Form
        For i = 0 To 10
            formDinamico = teste.criaForm(i.ToString)
            formDinamico.Show()
        Next i
    End Sub
End Class

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.