> il codice in una form, ma se metto lo stesso in un modulo di classe per
> poterlo utilizzare a mio piacimento ovunque non funziona il metodo add
> del costrutto. Qualcuno mi pu� indirizzare? E migliorare? :)
> Grazie mille!
non riesco a leggere il codice che hai postato (se l'hai postato) per cui
non riesco a capire se al modulo di classe hai passato o meno un
riferimento alla tua form...
--
Salutoni
Sergio
C'� il giorno in cui nasci e quello in cui scegli di vivere
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ab...@newsland.it
L'ho postato come allegato, non si vede?
Me.GiorniMese(XX).Controls.Add()
Questa � l'istruzione che non digerisce..
...chiaramente perdonerete il mio pessimo costrutto..
Incollo qua sotto:
Public Class videata_calendario
Public Class Giorni
Inherits System.Windows.Forms.Button
End Class
Public GiorniMese() As Giorni
Public Sub creacalendario()
ReDim GiorniMese(48)
Sin = Screen.PrimaryScreen.WorkingArea.Left + 20
Alt = Screen.PrimaryScreen.WorkingArea.Top + 20
NCol = 1
NRig = 1
For var.XX = 0 To 48
GiorniMese(XX) = New Giorni
If NCol > 5 And NCol <= 7 Then
GiorniMese(XX).ForeColor = Color.Red
GiorniMese(XX).Tag = "NoClick"
End If
GiorniMese(XX).Width = "24"
GiorniMese(XX).Height = "24"
GiorniMese(XX).Font = New Font("Tahoma", 6.0F, FontStyle.Regular,
GraphicsUnit.Point)
GiorniMese(XX).Text = XX
GiorniMese(XX).Top = Alt
GiorniMese(XX).Left = Sin
AddHandler GiorniMese(XX).MouseDown, AddressOf GiornoNew
AddHandler GiorniMese(XX).MouseUp, AddressOf GiornoOri
AddHandler GiorniMese(XX).Click, AddressOf AproGiorno
GiorniMese(XX).Cursor = Cursors.Hand
GiorniMese(XX).FlatStyle = FlatStyle.Flat
GiorniMese(XX).FlatAppearance.MouseOverBackColor = Color.LightBlue
GiorniMese(XX).FlatAppearance.MouseDownBackColor = Color.White
GiorniMese(XX).FlatAppearance.BorderSize = 1
GiorniMese(XX).FlatAppearance.BorderColor = Color.Goldenrod
Me.GiorniMese(XX).Controls.Add()
NRig += 1
NCol += 1
Sin += GiorniMese(XX).Width + GiorniMese(XX).Width / 6
If NRig > 7 Then
Alt += GiorniMese(XX).Height + GiorniMese(XX).Height / 6
NRig = 1
End If
If NCol > 7 Then
Sin = Screen.PrimaryScreen.WorkingArea.Left + 20
NCol = 1
End If
Next
InserisciDataCalendario(Month(Now()), Year(Now()))
End Sub
Public Sub GiornoNew(ByVal Sender As System.Object, ByVal e As
System.EventArgs)
If (GiorniMese(Sender.text + ServoAlClick + 6).Tag <> "NoClick") Then
GiorniMese(Sender.Text + ServoAlClick + 6).ForeColor = Color.SeaGreen
GiorniMese(Sender.Text + ServoAlClick + 6).Font = New Font("Tahoma",
5.0F, FontStyle.Bold, GraphicsUnit.Point)
End If
End Sub
Public Sub GiornoOri(ByVal Sender As System.Object, ByVal e As
System.EventArgs)
If GiorniMese(Sender.text + ServoAlClick + 6).Tag <> "NoClick" Then
GiorniMese(Sender.Text + ServoAlClick + 6).ForeColor = Color.Black
GiorniMese(Sender.Text + ServoAlClick + 6).Font = New Font("Tahoma",
6.0F, FontStyle.Regular, GraphicsUnit.Point)
End If
End Sub
Public Sub AproGiorno(ByVal Sender As System.Object, ByVal e As
System.EventArgs)
If (GiorniMese(Sender.text + ServoAlClick + 6).Tag <> "NoClick") Then
MsgBox("OK")
End If
End Sub
Public Sub InserisciDataCalendario(ByVal Mese As Short, ByVal Anno As
Short)
For var.XX = 0 To 48
GiorniMese(XX).Visible = False
Next
Data = "#1/" & Mese & "/" & Anno & "#"
NomeMese = Format(Data, "MMMM")
GiorniTot = System.DateTime.DaysInMonth(Anno, Mese)
Data = ("#01/" & Month(Data) & "/" & Year(Data) & "#")
PrimoGG = Data.ToString("ddd")
DataPartenza = Nothing
If UCase(PrimoGG) = "DOM" Then
DataPartenza = "6"
ElseIf UCase(PrimoGG) = "LUN" Then
DataPartenza = "0"
ElseIf UCase(PrimoGG) = "MAR" Then
DataPartenza = "1"
ElseIf UCase(PrimoGG) = "MER" Then
DataPartenza = "2"
ElseIf UCase(PrimoGG) = "GIO" Then
DataPartenza = "3"
ElseIf UCase(PrimoGG) = "VEN" Then
DataPartenza = "4"
ElseIf UCase(PrimoGG) = "SAB" Then
DataPartenza = "5"
End If
ServoAlClick = DataPartenza
ReDim Settimana(6)
Settimana(0) = "L"
Settimana(1) = "M"
Settimana(2) = "M"
Settimana(3) = "G"
Settimana(4) = "V"
Settimana(5) = "S"
Settimana(6) = "D"
For var.XX = 0 To 48
GiorniMese(XX).Enabled = False
GiorniMese(XX).Text = ""
GiorniMese(XX).BackColor = Color.LightGray
If var.XX < 7 Then
GiorniMese(XX).ForeColor = Color.Black
GiorniMese(XX).Font = New Font("Tahoma", 6.0F, FontStyle.Bold,
GraphicsUnit.Point)
GiorniMese(XX).BackColor = Color.DarkGray
GiorniMese(XX).Text = Settimana(XX).ToString
End If
Next
For var.XX = 8 To GiorniTot + 7
GiorniMese(DataPartenza + 7).Enabled = True
GiorniMese(DataPartenza + 7).Text = XX.ToString - 7
GiorniMese(DataPartenza + 7).BackColor = Color.White
DataPartenza += 1
Next
For var.XX = 0 To 48
GiorniMese(XX).Visible = True
Next
End Sub
End Class
> > non riesco a leggere il codice che hai postato (se l'hai postato) per cui
> > non riesco a capire se al modulo di classe hai passato o meno un
> > riferimento alla tua form...
> L'ho postato come allegato, non si vede?
no, non so se questo dipende dal mio leggere i post da newsland, ma non
c'era alcun allegato. leggibile, perlomeno.
> Me.GiorniMese(XX).Controls.Add()
> Questa � l'istruzione che non digerisce..
perdona, ma non capisco.
suppongo che Me sia la tua form
suppongo pure che giornimese(xx) sia il tuo oggetto, istanza della tua
classe che eredita da button (che poi spero che la cosa sia fatta a scopo
"didattico", perch� ereditare da una classe per poi non aggiungere nulla
non � che abbia particolarmente senso)
immagini che per aggiungere il tuo bottone alla tua form tu debba fare una
cosa del tipo
me.controls.add(giornimese(xx))
.oppure le modifiche apportate con le ultime verrsioni di visual basic
sono molto pi� profonde di quanto mi sia sembrato