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-2024
 
zurück

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

VB.NET - Ein- und Umsteiger
Re: Formular zum Steuern der DGV-Spalten 
Autor: ModeratorDaveS (Moderator)
Datum: 10.10.13 18:37

DGVF ist nicht gebunden.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Formular zum Steuern der DGV-Spalten 
Autor: Bazi
Datum: 02.10.13 22:38

Hallo,

ich möchte mein Programm um ein Formular für Einstellungen der Anzeige von Spalten der DGV´s erweitern.
Jetzt weiß ich aber nicht wie man das macht, dass es für mehrere DGV`s geht.

Ich stelle mir vor, ein leeres UF vorzuhalten, in das dann dynamisch beim Laden für alle Spalten des DGV eine Checkbox erstellt wird. Je nach dem ob die Spalte sichtbar ist oder nicht dann ausgewählt oder nicht.

Macht man das so, oder gibt es da andere Ansätze?

Gruß Christian

Danke für die Hilfe

Gruß Christian

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Formular zum Steuern der DGV-Spalten 
Autor: Manfred X
Datum: 02.10.13 23:34

Hallo!

So weit ich verstanden habe, kannst Du eine DialogForm nutzen,
die ein DatagridView-Property enthält.
Vor Aufruf dieses Dialogs wird das Grid auf diese Eigenschaft zugewiesen.

Innerhalb des Dialogs wird z.B. eine CheckedListbox mit Items zu den
ColumnTexten der übergebenen Instanz des Grid gefüllt.



Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Formular zum Steuern der DGV-Spalten 
Autor: ModeratorDaveS (Moderator)
Datum: 03.10.13 08:48

Ich würde ein DGV nehmen und die Headers als Schalter benutzen. (Ähnlich kann man ein DGV bequem benutzen um auch die Rows zu filtern, indem man in die entsprechende Spalte einen Ausdruck eintippt).

Wenn man hier auf den Spaltenkopf klickt wird die Farbe von grün auf rot (oder umgekehrt) geschaltet und die entsprechende Spalte im Haupt-DGV wird auf .Visible = False oder umgekehrt geändert. Das funktioniert dann mit jedem DataGridView. (DGVF ist DataGridView in FilterForm).
Public Class FilterForm
    Private _dgv As DataGridView
 
    Public Sub New(dgv As DataGridView)
        InitializeComponent()
        _dgv = dgv
 
        DGVF.EnableHeadersVisualStyles = False
        DGVF.AllowUserToAddRows = False
        DGVF.RowHeadersVisible = False
 
        For Each dgvc As DataGridViewColumn In _dgv.Columns
            Dim idx As Integer = DGVF.Columns.Add(dgvc.Name, dgvc.HeaderText)
 
            Dim dgvcf As DataGridViewColumn = DGVF.Columns(idx)
            dgvcf.SortMode = DataGridViewColumnSortMode.NotSortable
            If dgvc.Visible Then
                dgvcf.HeaderCell.Style.BackColor = Color.Green
            Else
                dgvcf.HeaderCell.Style.BackColor = Color.Red
            End If
        Next
    End Sub
 
    Private Sub DGVF_ColumnHeaderMouseClick(sender As Object, e As _
      DataGridViewCellMouseEventArgs) Handles DGVF.ColumnHeaderMouseClick
        Dim dgvc As DataGridViewColumn = _dgv.Columns(e.ColumnIndex)
        Dim dgvcf As DataGridViewColumn = DGVF.Columns(e.ColumnIndex)
        dgvc.Visible = Not dgvc.Visible
        If dgvc.Visible Then
            dgvcf.HeaderCell.Style.BackColor = Color.Green
        Else
            dgvcf.HeaderCell.Style.BackColor = Color.Red
        End If
    End Sub
End Class
Der Aufruf sieht so aus:
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles _
      Button1.Click
        Using filter As New FilterForm(DataGridView1)
            filter.ShowDialog()
        End Using
    End Sub

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Formular zum Steuern der DGV-Spalten 
Autor: Waver
Datum: 08.10.13 17:18

Hallo Dave

DaveS schrieb:
Zitat:

Ich würde ein DGV nehmen und die Headers als Schalter
benutzen. (Ähnlich kann man ein DGV bequem benutzen um auch
die Rows zu filtern, indem man in die entsprechende Spalte
einen Ausdruck eintippt).


Das Filtern über die Eingabe von Ausdrücken in die Spalte interessiert mich.
Allerdings verstehe ich nicht, wie du das meinst. Kannst du mir ein Beispiel geben?

Waver

Beitrag wurde zuletzt am 08.10.13 um 17:19:02 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Formular zum Steuern der DGV-Spalten 
Autor: ModeratorDaveS (Moderator)
Datum: 08.10.13 18:35

Immerhin interessiert sich doch jemand für meine Lösung. Ok, angenommen, dass DGVF in FilterForm eine einzelne (am Anfang leere) Zeile hat, dort kann der Benutzer einen Suchbegriff pro Spalte eintippen. Das könnte man dann am Ende abfragen
    Private Sub FilterForm_FormClosing(sender As Object, e As _
      FormClosingEventArgs) Handles Me.FormClosing
        For idx As Integer = 0 To _dgv.Columns.Count - 1
            Dim dgvcf As DataGridViewColumn = DGVF.Columns(idx)
            Debug.WriteLine(DGVF.Rows(0).Cells(dgvcf.Name).Value)
        Next
    End Sub
Anstatt aber mit Debug.WriteLine() die Werte auszudrucken baut man einen Filterstring zusammen, den man als bindingSource.Filter verwenden kann. Klar sollte man die Werte inzwischen abspeichern und wiederherstellen wenn die FilterForm wieder geöffnet wird. Oder die Form wird nicht disposed und einfach wieder gezeigt.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Formular zum Steuern der DGV-Spalten 
Autor: Bazi
Datum: 08.10.13 19:16

Immerhin interessiert sich doch jemand für meine Lösung.

Sorry, ich bin noch nichht dazu gekommen das zu probieren / einzubauen.
Den Weg finde ich gut, werde es bei mir jedoch versuchen mit Checkboxen zu machen. Der Ansatz dürfte aber der gleiche sein.

Melde mich auf jeden Fall wieder (ich gebe immer Feedback!)

Gruß Christian
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Formular zum Steuern der DGV-Spalten 
Autor: ModeratorDaveS (Moderator)
Datum: 09.10.13 06:51

Ich würde in dem Fall eine CheckedListBox verwenden, wie hier,
http://www.vbarchiv.net/forum/download.php?file_info=f17,22,88895,90,filterPage.jpg
Das lässt sich ganz leicht programmieren.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Formular zum Steuern der DGV-Spalten 
Autor: Bazi
Datum: 09.10.13 07:00

ja, so stelle ich mir das vor.
Danke

Danke für die Hilfe

Gruß Christian

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Formular zum Steuern der DGV-Spalten 
Autor: Bazi
Datum: 10.10.13 18:20

macht es eigentlich einen Unterschied ob ich die Visible-Eigenschaft auf false setze oder die Breite auf 0 einstelle?

Gruß Christian
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Formular zum Steuern der DGV-Spalten 
Autor: Waver
Datum: 10.10.13 18:28

Ich verstehe das nicht ganz. Wie kann an ein gebundenes DGV eine leere Zeile am Anfang eingebunden werden?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Formular zum Steuern der DGV-Spalten 
Autor: ModeratorDaveS (Moderator)
Datum: 10.10.13 18:44

Also, in einem Fall ist die Spalte unsichtbar, im anderen sichtbar aber Null Pixel breit. Daher gibt es dann auch nichts zu sehen. Wenn eine Visible Eigenschaft vorhanden ist wäre es vielleicht sinnvoll diese Eigenschaft zweckgemäß auch zu benutzen, als sich Tricks zu bedienen.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Formular zum Steuern der DGV-Spalten 
Autor: Bazi
Datum: 10.10.13 19:11

also optisch kein Unterschied. Kann ich in beiden Fällen auf den Zellinhalt zugreifen?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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