Oppure

Loading
12/09/08 11:10
Thejuster
Ciao totem.

Conosci per caso il medoto di aggiungere un haldes ad un nuovo controllo ed assegnarli un azione?

spiego cosa voglio fare.

l'utente puo in un secondo momento aggiungere nuove picturebox

dim pic as new picturebox

me.Controls.add(pic)
pic.name = "picturebox" & id & ""


facendo così implemento un nuovo controllo
e lo faccio stampare nel form

ma adesso come gli assegno nuove funzioni a quel controllo?
mire.forumfree.it/ - Mire Engine
C# UI Designer
12/09/08 11:47
Il Totem
totem.altervista.org/guida/versione2/…
In C# la sintassi è:
[Controllo].[Evento] += new [Delegate]([Sottoscrittore])

Ad esempio, per il click è:
private void unClick(Object sender, EventArgs e)
{
}

//...
Button B = new Button();
B.Click += new EventHandler(unClick);

La sfortuna di C# è che devi anche conoscere il delegate corretto.

P.S.: perchè l'ho scritto in C#? Boh, forse avevo letto Luk3 nello starter della discussione... Comunque c'è scritto tutto nel link.
Ultima modifica effettuata da Il Totem 12/09/08 11:48
aaa
13/09/08 16:15
Thejuster
Ciao totem si funziona correttamente ma non proprio spiego ho bisogno di generare una griglia di pictureBox

allora uso questo medoto


        'imposto le variabili
        Dim x As Integer = 10
        Dim y As Integer = 10

        Dim w As Integer = 32
        Dim h As Integer = 32

        Dim i As Integer = 0
        Dim id As Integer = 0

        Dim situazione As Integer = 32

        'inizio un conteggio
        'portando X a 0
        For i = 0 To x - 1
            id += 1

            Dim pic As New PictureBox

            With pic
                .Size = New Size(32, 32)
                .Name = "pic" & id
                .Location = New Point(situazione + 32, 32 + 32)
                .BorderStyle = Windows.Forms.BorderStyle.FixedSingle
                Me.Controls.Add(pic)
                AddHandler .Click, AddressOf clicc
                situazione += 32
           End With
        Next




mi va a genere solo 10 picuture box in orizzontale
mentre a me servirebbe una griglia completa
10 x 10 picturebox

come posso fare a fargli fare generare una griglia perfetta?

serve un'altro calcolo suppongo
potresti illuminarmi?
mire.forumfree.it/ - Mire Engine
C# UI Designer
13/09/08 16:33
Thejuster
Ciao totem il codice sopra elencato funziona
ho riuscito a generare una griglia di picturebox dinamicamente

ora ho un grande problema
quello di assengare alla picturebox clicca un immagine


se puoi aiutami su questo passo

dunque genero la picture box



dim pic as new picturebox

pic.name = "a" & id

Me.Controls.add(pic)

AddHandler .Click, AddressOf picClick





Ora vado a recuperare il nome del sender



Private Sub picClick(ByVal Senders As Object, ByVal e As EventArgs)


Dim _tag As Object = CType(Senders, PictureBox).Name



Ho impegato circa un ora per capire come riuscire ad ottenere il nome del senders

Ora come cavolo faccio ad applicare un immagine su quella picturebox?

essendo un controllo generato dinamicamente
non posso avere accesso così liberamente con gl'altri controlli

deve pur esserci un sistema

potresti aiutarmi caro totem?

mi sto scervellando da matti

grazie mille.



Ho provato anche queste funzioni ma non sembrano dare risultato


 Private Sub clicc(ByVal Senders As Object, ByVal e As EventArgs)






Dim _tag As Object = CType(Senders, PictureBox).Tag


        If _tag IsNot Nothing Then
            Dim _c As Control = FindControl(Me, GetType(PictureBox), _tag)

            If _c IsNot Nothing Then CType(_c, PictureBox).Image = Image.FromFile(texture)


        End If




Funzione


Private Function FindControl(ByVal start As Control, ByVal type As Type, ByVal tag As Object) As Control

        For Each _c As Control In start.Controls
            If _c.GetType() Is type Then
                If _c.Tag IsNot Nothing AndAlso _c.Tag = tag Then Return _c
            Else
                If _c.HasChildren Then
                    Dim _cc As Control = FindControl(_c, type, tag)
                    If _cc IsNot Nothing Then Return _cc
                End If
            End If
        Next

        Return Nothing

    End Function



:(
Ultima modifica effettuata da Thejuster 13/09/08 23:40
mire.forumfree.it/ - Mire Engine
C# UI Designer
13/09/08 23:52
Thejuster
Risolto

8-|


 Dim lols = CType(Senders, PictureBox).Name



        For Each l As Control In Me.Controls
            If l.Name = lols Then

                l.BackgroundImage = Image.FromFile(texture)

            End If



        Next


mire.forumfree.it/ - Mire Engine
C# UI Designer
14/09/08 7:29
Il Totem
Scusa ma a me sembra che tu ti stia scervellando per niente quando hai la soluzione sotto il naso:
CType(sender, PictureBox).BackgroundImage = Image.FromFile("file")
aaa