Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Re: button in runtime in modulo di classe vb.net

6 views
Skip to first unread message

Melchiade Bedrosian Baol

unread,
Nov 2, 2009, 9:24:17 AM11/2/09
to
gargarozzo ha scritto:

> 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


gargarozzo

unread,
Nov 3, 2009, 4:16:23 AM11/3/09
to
> 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?

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


Melchiade Bedrosian Baol

unread,
Nov 11, 2009, 1:43:05 PM11/11/09
to
gargarozzo ha scritto:

> > 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

0 new messages