Ciao!

Sono fermo da giorni (ai neofiti capita di aprire per giorni il codice, guardarlo per ore, e poi richiudere senza aver aggiunto neanche una riga di codice) cercando di capire come si usa la classe graphics. In sostanza devo creare delle linee sull'oggetto time_base che è un panel. Questo panel, insieme a molti altri, e all'interno di un'altro panel (timetable) che funge un pò come contenitore (ho scelto il panel come contenitore perchè mette la barra di scorrimento in automatico). Tuttavia se faccio le line da progettazione con lineshape sull'oggetto timetable, le linee non vengono coperte dall'oggetto time_base, ma nel momento in cui ci draggo e ci muovo un oggetto è come se passassi una gomma da cancellare. Allora dico, le disegno in fase di programmazione sull'oggetto time_base.. ma non compare neanche un pixel. Il mio obbiettivo sarebbe quella di far scivolare l'oggetto che draggo su time_base, sotto le linee che dovrebbero essere visibili anche sopra l'oggetto che sposto. Penso di non essermi spiegato bene.. devo fare una griglia orario tipo la guida tv di sky; solo che ci devono essere delle righe che, per ogni ora, solcano tutti gli oggetti presenti! posto il link..

http://guidatv.sky.it/guidatv/grid.html


codice:
 Sub obj_creator()

        Dim y As Int16
        Dim k As Int16
        Dim z As Int16

        z = 5
        k = 0
        y = 30
        'costruisco tanti oggetti per quante sono le sale. Un texbox (num_posti) per il numero dei posti; 
        'delle label per evidenziare il numero della sala (obj)
        'è3d e èDgt sono dei chekbox per definire se la sala è solo digitale o anche 3d. in mancanza di check
        'significa che la sala è in 35mm

        For i = 1 To cinema.Length
            'dichiarazione oggetti
            Dim obj As New Label()
            Dim num_posti As New TextBox
            Dim è3d As New CheckBox()
            Dim èDgt As New CheckBox()
            Dim labsal As New Label
            Dim time_base As New Panel
            Dim pansal As New Panel


            'costruzione oggetti sul controllo voluto: in questo caso panel1
            Me.Panel1.Controls.Add(obj)
            Me.Panel1.Controls.Add(num_posti)
            Me.Panel1.Controls.Add(è3d)
            Me.Panel1.Controls.Add(èDgt)
            Me.timetable.Controls.Add(time_base)
            Me.timetable.Controls.Add(labsal)

            'definizione delle proprietà degli oggetti
            num_posti.Left = num_posti.Left + 130
            num_posti.Name = "num_posti" & i
            num_posti.Width = 50
            num_posti.Text = cinema(i - 1).capienza
            num_posti.Top = y
            'chiamata della funzione necessaria nel momento in cui l'utente compila gli oggetti
            AddHandler num_posti.TextChanged, AddressOf inputposti_change

            'label con numero sale
            obj.Top = y
            obj.Left = obj.Left + 10
            obj.BackColor = Color.Orange
            obj.Name = "obj" & i
            obj.Text = "sala " & i
            obj.TextAlign = ContentAlignment.MiddleCenter

            'checkbox se è 3D
            è3d.Top = y
            è3d.Width = 50
            è3d.Left = 250
            è3d.Name = "è3d" & i
            è3d.Text = "3D"
            è3d.Checked = cinema(i - 1).s3d
            AddHandler è3d.Click, AddressOf verifica3d_click

            'checkbox se è Dgt
            èDgt.Top = y
            èDgt.Left = 350
            èDgt.Text = "Dgt"
            èDgt.Name = "èDgt" & i
            èDgt.Checked = cinema(i - 1).sdg
            AddHandler èDgt.Click, AddressOf verificaDgt_click

            'time_base
            With time_base
                .Top = k
                .Left = 60
                .Name = "time_base" & i
                .BackColor = Color.LightYellow
                .BorderStyle = BorderStyle.FixedSingle
                .Width = 1490
                .Height = 50
                .AllowDrop = True
                Dim p As New Pen(Brushes.Black, 2)
                time_base.CreateGraphics.DrawLine(p, 25, 25, 1490, 25)

                AddHandler time_base.DragEnter, AddressOf time_base_DragEnter
                AddHandler time_base.DragDrop, AddressOf time_base_DragDrop

            End With

            'numero di sala della time table
            With labsal
                .Top = k
                .Left = 0
                .Height = 50
                .Name = "labsal" & i
                .BorderStyle = BorderStyle.FixedSingle
                .BackColor = Color.Azure
                .Text = "SALA  " & i & vbCr & "posti: " & cinema(i - 1).capienza
                If cinema(i - 1).s35mm = True Then
                    .BackColor = Color.Violet
                ElseIf cinema(i - 1).s3d = True Then
                    .BackColor = Color.Gold
                ElseIf cinema(i - 1).sdg = True Then
                    .BackColor = Color.Cyan
                End If
            End With

            'panel per area sala
            With pansal
                .Top = z
                .Left = 60
                .AutoScroll = True
                .Height = 40
                .Width = 220
                .AllowDrop = True
                .Name = "pansal" & i
                .BackColor = Color.Lavender
            End With



            k = k + 50
            y = y + 30
            z = z + 50
        Next i
        MessageBeep(0)
    End Sub
ringrazio tutte le anime pie che sono arrivate a leggere fin qui