Newsgroup: it.comp.lang.visual-basic
Titolo: Re: button in runtime in modulo di classe vb.net

 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

 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

 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 
