ok.. ho capito il suggerimento di Tas e ho dedicato tutto oggi (non ho dato da mangiare neanche ai gatti) per capire come costruire un usercontrol che mi aiutasse. Ho capito che se riesco a proggettarli bene, infatti me ne servirà un'altro oltre a questa griglia temporale (quello che tas indica come evento), i miei problemi si ridurranno notevolmente e in fondo, come diceva la mi prof di informatica, per imparare ci devi sbattere la testa.
quindi ho buttato giù questo:
ecco i miei problemi:codice:Imports System.Drawing.Drawing2D 'questo è il mio user control. <Serializable()> _ Public Class griglia Public _numero_sale As Integer Dim _capienza As Int32 Dim _s3d As Boolean, _sdg As Boolean, _s35mm As Boolean Public Sub New() 'questo lo metto perchè lo ha messo tas. è questo il costruttore? InitializeComponent() End Sub Public Property numero_sale As Integer Get Return _numero_sale End Get Set(ByVal value As Integer) _numero_sale = value End Set End Property Public Property capienza() As Int32 Get Return _capienza End Get Set(ByVal value As Int32) If value > 0 Then _capienza = value End If End Set End Property Property s3d() As Boolean Get Return _s3d End Get Set(ByVal value As Boolean) _s3d = value End Set End Property Property sdg() As Boolean Get Return _sdg End Get Set(ByVal value As Boolean) _sdg = value End Set End Property Property s35mm() As Boolean Get Return _s35mm End Get Set(ByVal value As Boolean) _s35mm = value End Set End Property Private Sub Griglia_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint 'disegna la timeline '... Dim p As New Pen(Brushes.Peru, 3) Dim y As Integer p.DashStyle = DashStyle.DashDotDot For i = 60 To 1440 e.Graphics.DrawLine(p, i, 0, i, 1000) i = i + 60 Next y = 5 'ora, vorrei disegnare un rettangolo (quello che prima era il panel) ogni tre pixel tanti quante sale sono.. For i = 0 To numero_sale - 1 y+=3 e.Graphics.DrawRectangle(Pens.Maroon, 5, y, 50, 1440) y += 50 Next End Sub End Class
- cosi come è, quando metto il controllo non crea nessun rettangolo per sala.. certo! le sale glielo posso comunicare solo da codice (io non so prima quante sale deve gestire l'utente finale). Allora, seguendo il totem, ho provato a mettere una proprietà parametrizzata:
ma guai.. appena porto il controllo sul form, vb mi riempie di parolacce.codice:Public Sub New(byval numsal) InitializeComponent() numero_sale=numsal. End Sub![]()
-altra cosa. in:
1000 è un valore cosi, tanto per metterci qualcosa (la mia prof di info mi avrebbe messo 4) in realtà ci dovrebbe essere il bordo inferiore del controllo.. ma come posso controllare un controllo che non controllo?.. nel senso.. in base al numero di sale l'altezza del controllo varia.. ma griglia.height etc non ha senso per lui!codice:e.Graphics.DrawLine(p, i, 0, i, 1000)
Insomma.. vi asscuro che ci sto provando, ma se mi accannate lo capirei. Tuttavia sono decisamente migliorato dal primo post.. no?
cmq ragazzi che giornata!!

.
Rispondi quotando