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
ringrazio tutte le anime pie che sono arrivate a leggere fin quicodice: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![]()

Rispondi quotando