vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Handler für Textbox mit Index ? 
Autor: ANSI Lady
Datum: 12.06.07 13:14

hm... ok, das sollte mich ein paar Minuten beschäftigen.

Vielen Dank

Ich poste mal den kompletten Code hier so ab, vllt hat ja der ein oder andere noch einen interessanten Denkansatz ? ;)

Ansonsten habt ihr einfach eine Funktion die einen Kalender zeichnet in den man Zahlen eingeben kann. Zugegeben: Recht unspektakulär! Aber: anscheinend doch nicht sooo einfach

Module Kalender
 
    Private txtBox As New List(Of TextBox)
    Private lblBox As New List(Of Label)
    Public DateBegin As DateTime
    Public DateFinish As DateTime
 
    Public Sub DrawCalendar(ByVal DrawTo As Control, ByVal Month As Integer, _
      ByVal Year As Integer)
 
        txtBox.Clear()
        lblBox.Clear()
        DrawTo.Controls.Clear()
 
        Dim count As Long
        Dim x As Long
        Dim y As Long
        Dim myDay As Long
        Dim FirstDayInMonth As Double
 
        DateBegin = CDate("1." & Month & "." & Year)
        DateFinish = DateTime.Parse(DateBegin).AddDays(DaysPerMonth(Month, _
          Year) - 1)
        FirstDayInMonth = DateTime.Parse(DateBegin).DayOfWeek
 
        If FirstDayInMonth = 0 Then FirstDayInMonth = 7
 
        x = 60
        y = 0
 
        ' 6 Reihen zu je 7 Tagen entspricht einem Aufwand von max 42 Textfeldern
        For count = 0 To 41
 
            ' Jeden 7. Tag eine neue Zeile in der Matrix
            If count Mod 7 = 0 Then
                If myDay >= DaysPerMonth(Month, Year) Then
                    ' Wenn der Monat bereits komplett angezeigt wird dann 
                    ' können wir uns eigentlich weitere Zeilen sparen...
                    Exit For
                Else
                    y = y + 40
                    x = 60
                End If
            End If
 
            If count >= FirstDayInMonth - 1 And myDay < DaysPerMonth(Month, _
              Year) Then
 
                ' Text- und Labelboxen erstellen
                txtBox.Add(New TextBox)
                lblBox.Add(New Label)
 
                lblBox(myDay).Text = myDay + 1
 
                ' standartwerte labelboxen 
                lblBox(myDay).Top = y
                lblBox(myDay).Left = x
                lblBox(myDay).Width = 50
                lblBox(myDay).TextAlign = ContentAlignment.TopCenter
 
                ' standartwerte textboxen 
                txtBox(myDay).Top = lblBox(myDay).Top + 15
                txtBox(myDay).Left = lblBox(myDay).Left
                txtBox(myDay).TextAlign = HorizontalAlignment.Center
                txtBox(myDay).Width = 50
                txtBox(myDay).Font = My.Settings.Font
                txtBox(myDay).ForeColor = My.Settings.Forecolor
                txtBox(myDay).Tag = lblBox(myDay).Text & "." & Month & "." & _
                  Year
 
                DrawTo.Controls.Add(txtBox(myDay))
                DrawTo.Controls.Add(lblBox(myDay))
 
                AddHandler txtBox(myDay).Click, AddressOf ClickCalendar
                myDay = myDay + 1
            End If
            x = x + 50
        Next
    End Sub
 
    ' Wieviele Tage hat ein bestimmter Monat ? 
    Public Function DaysPerMonth(ByVal Month As Double, ByVal Year As Double) _
      As Double
        DaysPerMonth = DateTime.DaysInMonth(Year, Month)
    End Function
 
    Private Sub ClickCalendar(ByVal sender As Object, ByVal e As _
      System.EventArgs)
        If TypeOf sender Is TextBox Then
            MsgBox(CType(sender, TextBox).Tag)
        End If
    End Sub
 
End Module
Anmerkung zum Code: Zuerst die Funktionalität, dann die Schönheit

Gruß && :kiss:
ANSI

PS: Das kann auch am Geh?usetreiber liegen....
Gru? && so
ANSI

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Handler für Textbox mit Index ?1.038ANSI12.06.07 11:53
Re: Handler für Textbox mit Index ?686Melkor12.06.07 12:15
Re: Handler für Textbox mit Index ?764Dennisf12.06.07 12:16
Re: Handler für Textbox mit Index ?825ANSI Lady12.06.07 12:29
Re: Handler für Textbox mit Index ?684Dennisf12.06.07 12:58
Re: Handler für Textbox mit Index ?717Melkor12.06.07 13:07
Re: Handler für Textbox mit Index ?726ANSI Lady12.06.07 12:51
Re: Handler für Textbox mit Index ?825ANSI Lady12.06.07 13:14
Re: Handler für Textbox mit Index ?708ANSI Lady12.06.07 14:01

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel