Die Community zu .NET und Classic VB.
Menü

VB 5/6-Tipp 0307: FlexGrid-Demo

 von 

Beschreibung 

Tolles Beispiel, welches umfangreich darlegt welche Methoden und Ereignisse dem FlexGrid so zur Verfügung stehen. Angefangen mit den verschiedensten Einfärbemöglichkeiten, bis zu allen nur erdenklichen Ausrichtungsarten und einem Mouseover-SetFocus Event

Schwierigkeitsgrad:

Schwierigkeitsgrad 1

Verwendete API-Aufrufe:

keine

Download:

Download des Beispielprojektes [4,2 KB]

'Dieser Quellcode stammt von http://www.activevb.de
'und kann frei verwendet werden. Für eventuelle Schäden
'wird nicht gehaftet.

'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
'Ansonsten viel Spaß und Erfolg mit diesem Source!

'------------- Anfang Projektdatei Projekt1.vbp -------------
' Die Komponente 'Microsoft Common Dialog Control 6.0 (SP3) (COMDLG32.OCX)' wird benötigt.
' Die Komponente 'Microsoft FlexGrid Control 6.0 (msflxgrd.ocx)' wird benötigt.

'--------- Anfang Formular "Form1" alias Form1.frm  ---------
' Steuerelement: Kontrollkästchen-Steuerelement "Check3"
' Steuerelement: Flexible Tabelle "MSHFlexGrid1"
' Steuerelement: Kombinationsliste "Combo5"
' Steuerelement: Kontrollkästchen-Steuerelement "Check2"
' Steuerelement: Schaltfläche "Command15"
' Steuerelement: Schaltfläche "Command13"
' Steuerelement: Kombinationsliste "Combo4"
' Steuerelement: Kombinationsliste "Combo3"
' Steuerelement: Kombinationsliste "Combo1"
' Steuerelement: Kontrollkästchen-Steuerelement "Check1"
' Steuerelement: Schaltfläche "Command12"
' Steuerelement: Schaltfläche "Command11"
' Steuerelement: Schaltfläche "Command9"
' Steuerelement: Schaltfläche "Command10"
' Steuerelement: Schaltfläche "Command14"
' Steuerelement: Schaltfläche "Command8"
' Steuerelement: Schaltfläche "Command5"
' Steuerelement: Schaltfläche "Command6"
' Steuerelement: Schaltfläche "Command7"
' Steuerelement: Standarddialog-Steuerelement "CommonDialog1"
' Steuerelement: Textfeld "Text4"
' Steuerelement: Schaltfläche "Command4"
' Steuerelement: Textfeld "Text3"
' Steuerelement: Schaltfläche "Command3"
' Steuerelement: Textfeld "Text2"
' Steuerelement: Schaltfläche "Command2"
' Steuerelement: Textfeld "Text1"
' Steuerelement: Schaltfläche "Command1"
' Steuerelement: Beschriftungsfeld "Label5"
' Steuerelement: Beschriftungsfeld "Label4"
' Steuerelement: Beschriftungsfeld "Label3"
' Steuerelement: Beschriftungsfeld "Label1"


'Autor: Daniel Klatt
'E-Mail: danielklatt@hotmail.com

Option Explicit

Private Sub Check1_Click()
    If Check1.Value = 1 Then
        'Wenn True dann wird durch klicken auf die Überschrift die
        'gesamte Spalte oder Zeile ausgewählt.
        MSHFlexGrid1.AllowBigSelection = True
    Else
        MSHFlexGrid1.AllowBigSelection = False
    End If
End Sub

Private Sub Check2_Click()
    If Check2.Value = 1 Then
        'Wenn True dann wird das Gird 3D dargestellt.
        MSHFlexGrid1.Appearance = flex3D
    Else
        'bei False flach
        MSHFlexGrid1.Appearance = flexFlat
    End If
End Sub

Private Sub Combo1_Click()
    'Gibt an ob die Spalten- bzw. Zeilenbreite mit der
    'Maus verändert werden kann
    MSHFlexGrid1.AllowUserResizing = Combo1.ListIndex
End Sub

Private Sub Combo3_Click()
    'Legt die Ausrichtung des Textes in den Spalzen bzw Zeile nfest
    MSHFlexGrid1.ColAlignment(MSHFlexGrid1.Col) = Combo3.ListIndex
End Sub

Private Sub Combo4_Click()
    'Legt fest, wie Das Gitternetz im Gird gezeichnet werden soll
    MSHFlexGrid1.GridLines = Combo4.ListIndex
End Sub

Private Sub Combo5_Click()
    'Legt fest, wie die Festen Zellen gezeichnet werden sollen
    MSHFlexGrid1.GridLinesFixed = Combo5.ListIndex
End Sub

Private Sub Command1_Click()
    'Legt die Anzahl der Spalten fest
    MSHFlexGrid1.Cols = Text1.Text
End Sub

Private Sub Command2_Click()
    'Legt die Anzahl der Anzahl der Zeilen
    MSHFlexGrid1.Rows = Text2.Text
End Sub

Private Sub Command3_Click()
    Dim n As Integer
    
    'Legt die Spaltenbreite fest
    For n = 0 To MSHFlexGrid1.Cols - 1
        MSHFlexGrid1.ColWidth(n) = Text3.Text
    Next n
End Sub

Private Sub Command4_Click()
    Dim n As Integer
    
    'Legt die Zeilenbreite fest
    For n = 0 To MSHFlexGrid1.Rows - 1
        MSHFlexGrid1.RowHeight(n) = Text4.Text
    Next n
End Sub

Private Sub Command5_Click()
    Dim n As Integer, x As Integer, y As Integer
    Dim aa As String
    
    'Füllt das MSHFlexGrid1 mit Daten
    For n = 0 To MSHFlexGrid1.Cols - 1
        aa = ""
        For y = 0 To 2
            'zufällig Buchstaben erzeugen
            aa = aa & Chr$(Rnd * 25 + 65)
        Next y
        'Feste Zeile mit Buchstaben füllen
        MSHFlexGrid1.TextMatrix(0, n) = aa
    Next n
    
    For n = 0 To MSHFlexGrid1.Rows - 1
        aa = ""
        For y = 0 To 2
            'zufällig Buchstaben erzeugen
            aa = aa & Chr$(Rnd * 25 + 65)
        Next y
        
        'Feste Spalte mit Buchstaben füllen
        MSHFlexGrid1.TextMatrix(n, 0) = aa
    Next n
    
    For y = 1 To MSHFlexGrid1.Cols - 1
        For x = 1 To MSHFlexGrid1.Rows - 1
            'Das MSHFlexGrid1 wird zufällig mit Zahlen gefüllt
            MSHFlexGrid1.TextMatrix(x, y) = Int((50 * Rnd) + 1)
        Next x
    Next y
End Sub

Private Sub Command6_Click()
    'Legt die Hintergrundfarbe des Datenbereiches fest
    MSHFlexGrid1.BackColor = FarbAuswahl
End Sub

Private Sub Command7_Click()
    'Legt die Vordergrundfarbe des  Datenbereiches fest
    MSHFlexGrid1.ForeColor = FarbAuswahl
End Sub

Private Sub Command8_Click()
    'Legt die Hintergrundfarbe der 'Festen Zellen fest
    MSHFlexGrid1.BackColorFixed = FarbAuswahl
End Sub

Private Sub Command9_Click()
    'Legt die Vordergrundfarbe der Festen Zellen fest
    MSHFlexGrid1.ForeColorFixed = FarbAuswahl
End Sub

Private Sub Command10_Click()
    'Legt die Hintergrundfarbe der Zellen beim markieren fest
    MSHFlexGrid1.BackColorSel = FarbAuswahl
End Sub

Private Sub Command11_Click()
    'Legt die Vordergrundfarbe der Zellen beim markieren fest
    MSHFlexGrid1.ForeColorSel = FarbAuswahl
End Sub

Private Sub Command12_Click()
    'Legt die Hintergrundfarbe der gerade ausgewählten Zelle fest
    MSHFlexGrid1.CellBackColor = FarbAuswahl
End Sub

Private Sub Command13_Click()
    'Legt die Vordergrundfarbe der gerade ausgewählten Zelle fest
    MSHFlexGrid1.CellForeColor = FarbAuswahl
End Sub

Private Sub Command14_Click()
    'Legt die Farbe für den Bereich um die Tabelle fest
    MSHFlexGrid1.BackColorBkg = FarbAuswahl
End Sub

Private Sub Command15_Click()
    'Legt die Farbe des Gitternetzts fest
    MSHFlexGrid1.GridColor = FarbAuswahl
End Sub

Private Sub Command16_Click()
    MSHFlexGrid1.WordWrap = False
End Sub

Private Sub Form_Load()
    Call Command1_Click
    Call Command2_Click
    Call Command3_Click
    Call Command4_Click
    Call Command5_Click
End Sub

Function FarbAuswahl() As Long
    Dim temp As Long
    On Error Goto ErrHandler
  
    'Standard-Dialogfeld Farbauswahl wird durch = Farbauswahl
    'aufgerufen. "Abbrechen" auf "True" setzen. Flags Eigenschaft setzen.
    CommonDialog1.CancelError = True
    CommonDialog1.Flags = cdlCCRGBInit
    
    'Dialogfeld "Farbe" anzeigen.
    CommonDialog1.ShowColor
    temp = CommonDialog1.Color
    FarbAuswahl = temp
    Exit Function
     
ErrHandler:
    'Benutzer hat auf Abbrechen-Schaltfläche geklickt.
    Exit Function
End Function

Private Sub MSHFlexGrid1_MouseMove(Button As Integer, Shift As Integer, _
    x As Single, y As Single)
                              
    Dim Cx As Long, Cy As Long
    Static LCx As Long, LCy As Long
    
    MSHFlexGrid1.SetFocus
    
    If Check3.Value = vbChecked Then
        Cx = MSHFlexGrid1.MouseCol
        Cy = MSHFlexGrid1.MouseRow
      
        If LCx <> Cx Or LCy <> Cy Then
            If Cx <> 0 And Cy <> 0 Then
                MSHFlexGrid1.Row = Cy
                MSHFlexGrid1.Col = Cx
            End If
        End If
      
        LCx = Cx
        LCy = Cy
    End If
End Sub
'---------- Ende Formular "Form1" alias Form1.frm  ----------
'-------------- Ende Projektdatei Projekt1.vbp --------------

Tipp-Kompatibilität:

Windows/VB-VersionWin32sWin95Win98WinMEWinNT4Win2000WinXP
VB4
VB5
VB6

Hat dieser Tipp auf Ihrem Betriebsystem und mit Ihrer VB-Version funktioniert?

Ja, funktioniert!

Nein, funktioniert nicht bei mir!

VB-Version:

Windows-Version:

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.

Archivierte Nutzerkommentare 

Klicken Sie diesen Text an, wenn Sie die 2 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.

Kommentar von ff am 27.02.2002 um 17:26

rrrr

Kommentar von Andreas Süß am 10.05.2001 um 15:00

Wie läßt sich ein Grid initialisieren ohne eine Schleife zu schreiben?
(initialize Grid oder so...)