117553
Goto Top

VB.Net Datenbank DataGridView CurrentCell Style BackColor in My.Settings speichern!?

Hallo zusammen face-smile bräuchte bitte eine kleine Hilfestellung....

Vielleicht kann mir jemand weiterhelfen...

kurz: ich bastel mir ein kleines Datagridview danach kann man die einzelnen Zellen durch klicken einfärben und Zeilen ausblenden etc.. nichts großartiges..
Problem: wie könnte ich dann diesen letzten bearbeiteten Stand abspeichern? (so dass er nach dem schließen und erneut öffnen wieder da wäre)

hab mich in My.Settings eingelesen aber irgendwie komm ich da so garnicht weiter face-sad

Code:

Public Class Projektplanung

    Dim rowIndex As Integer = 0

    Private Sub DatenbankBindingNavigatorSaveItem_Click(sender As Object, e As EventArgs) Handles DatenbankBindingNavigatorSaveItem.Click
        Me.Validate()
        Me.DatenbankBindingSource.EndEdit()
        Me.TableAdapterManager.UpdateAll(Me.DatenDataSet)

    End Sub

    Private Sub Projektplanung_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        'TODO: Diese Codezeile lädt Daten in die Tabelle "DatenDataSet.Datenbank". Sie können sie bei Bedarf verschieben oder entfernen.  
        Me.DatenbankTableAdapter.Fill(Me.DatenDataSet.Datenbank)
        '  DatenbankDataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect  


        Me.DatenbankBindingSource.Filter = "[Prg Fertig] Is Null"  

        For i = 1 To 9

            Dim KW As New DataGridViewTextBoxColumn()


            With KW
                .HeaderText = "0" & i  
                               .Width = 25
                .CellTemplate.Style.BackColor = Color.White
                .DisplayIndex = 6 + i
            End With

            DatenbankDataGridView.Columns.Add(KW)
        Next


        For j = 10 To 52

            Dim KW As New DataGridViewTextBoxColumn()


            With KW
                             .Width = 25
                .CellTemplate.Style.BackColor = Color.White
                .DisplayIndex = 6 + j
            End With

            DatenbankDataGridView.Columns.Add(KW)
        Next



    End Sub


    Private Sub ToolStripLabel1_Click(sender As Object, e As EventArgs) Handles ToolStripLabel1.Click
     
        Dim selectedItems As DataGridViewSelectedRowCollection = DatenbankDataGridView.SelectedRows
        For Each selectedItem As DataGridViewRow In selectedItems

            selectedItem.Height = 0

        Next


    End Sub

    Private Sub DatenbankDataGridView_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DatenbankDataGridView.CellClick
        DatenbankDataGridView.CurrentCell.Style.BackColor = Color.Blue

    End Sub


    Private Sub DatenbankDataGridView_CellDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles DatenbankDataGridView.CellDoubleClick
        DatenbankDataGridView.CurrentCell.Style.BackColor = Color.White
    End Sub


    Private Sub DatenbankDataGridView_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles DatenbankDataGridView.CellContentClick
     
    End Sub
End Class

Content-Key: 319293

Url: https://administrator.de/contentid/319293

Printed on: May 9, 2024 at 13:05 o'clock

Mitglied: 131301
131301 Oct 27, 2016 at 14:46:23 (UTC)
Goto Top
Durchlaufe dein Grid mit einer Schleife und schreibe die Farbwerte mit dem Zeilenindex in eine INI/CSV/XML Datei und lese sie beim Start der Anwendung wieder ein. Du kannst das auch in My.Settings speichern, baust dir einfach in der Schleife einen String zusammen der z.B. So aufgebaut ist
INDEX:FARBE;INDEX:FARBE;INDEX:FARBE
Das ganze splittest du dann per Semikolon und pro Split dann noch einen mit Doppelpunkt für Index und Farbe.

Gruß
Member: atze187
atze187 Oct 27, 2016 at 16:03:59 (UTC)
Goto Top
Sind das Daten die sich ändern, also z.B. in der Reihenfolge variieren können?
Mitglied: 117553
117553 Oct 27, 2016 at 19:40:06 (UTC)
Goto Top
Hallo Atze, ja ich Versuchs am besten kurz zu beschreiben.

Ein Projektplaner, verkürzt gesagt in Spalte 1 die Projekte und danach 52 Spalten Kalenderwochen.

Hier ändern alle Zellen nach Click die Farbe, diese werden verschoben und ändern sich und auch die Spalte der Projekte ändern sich, fertige werden ausgeblendet
Mitglied: 117553
117553 Oct 27, 2016 at 19:41:06 (UTC)
Goto Top
Danke werd mich gleich dranmachen, ist ein guter Ansatz!
Member: atze187
atze187 Oct 27, 2016 at 21:27:45 (UTC)
Goto Top
Ich sag mal so: du solltest nicht die Farbe speichern sondern die Spalten/Zeilen in denen die Daten sein sollen und dann die Farbe per Databinding ändern (lassen).
Mitglied: 117553
117553 Oct 27, 2016 at 21:55:18 (UTC)
Goto Top
Also die Daten speichert er ja, also zumindest die ersten 4 Spalten Projektnummer und so aus einer Access Datenbank danach kommen (52 Stück) "Kalenderwochen" ungebundene Spalten und die Zellen in dieser Matrix bekommen so keine Daten mehr sondern werden nur verschieden eingefärbt um einen Plan darzustellen.

Hatte es jetzt wie oben über My. Settings versucht aber das schnall ich irgendwie nicht face-sad
Member: atze187
Solution atze187 Oct 28, 2016 at 06:47:11 (UTC)
Goto Top
Lass uns das mal sezieren:

Du möchtest eine Zeitachse abbilden, die mehrere untereinander angeordnete Einträge enthält, welche auf der Y-Achse die Projekte und auf der X-Achse deren zeitlichen Verlauf auf Wochenbasis abbilden.
Da bist du natürlich nicht der erste der sowas machen möchte. Dafür gibt es schon eine mehr als geeignete Lösung:

Das Gantt-Chart

Gantt-Charts sind genau für diese Aufgabe geschaffen worden. Bei Codeplex gibt da etwas fertiges für Windows Forms (https://ganttchart.codeplex.com/).

Zitat von @117553:
die Zellen in dieser Matrix bekommen so keine Daten mehr sondern werden nur verschieden eingefärbt um einen Plan darzustellen.
Die Zellen nicht, aber es sind ja irgendwo die Daten dazu vorhanden. Und genau die musst du dem Gantt-Chart zur Verfügung stellen. Die Doku auf der Codeplex-Seite unter Documentation ist ganz gut und sollte bei sorgfältigem Studium ausreichen.
Mitglied: 117553
117553 Oct 28, 2016 at 12:07:54 (UTC)
Goto Top
Super, vielen Dank! da muss ich mich jetzt erstmal einarbeiten face-smile
das ist natürlich die Luxus Lösung, meine wäre jetzt auch fertig soweit vielleicht bekomm ich ja das mit dem abspeichern noch irgendwie gebacken!

vielen Dank euch, für die Unterstützung!!!
mfg
Markus