GridView Zellen farbig markieren



  • Hallo,

    ich möchte manche Zellen (je nach Datum) farbig markieren.
    Wenn ich die Form aufrufe, dann sind aber leider alle meine Einträge noch grau.
    Rufe ich die Funktion dann aber erneut auf (btnAllesAnzeigen), werden die Zellen markiert.
    Warum nicht schon beim ersten Aufruf?

    Hier mal mein Code:

    public Form_Uebersicht()
            {
                InitializeComponent();
    
                GridFuellen();
                GridFarbigMarkieren();
            }
    
            private void GridFuellen()
            {
                grid1.DataSource = null;
                grid1.Rows.Clear();
                grid1.Columns.Clear();
    
                grid1.DataSource = GetAlleBG;
    
                grid1.Columns[0].Visible = false;
                grid1.Columns[4].Visible = false;
                grid1.Columns[5].Visible = false;
                grid1.Columns[7].Visible = false;
                grid1.Columns[8].Visible = false;
                grid1.Columns[13].Visible = false;
                grid1.Columns[14].Visible = false;
    
                grid1.Columns["Datum"].DisplayIndex = 0;
    
                GridFarbigMarkieren(); 
            }
    
            private void GridFarbigMarkieren()
            {
                DateTime dtHeute = System.DateTime.Now;
                string sDateHeute= dtHeute.ToString("dd.MM.yyyy 00:00:00");
    
                for (int n = 0; n < grid1.Rows.Count - 1; n++)
                {
                    if (grid1[1, n].Value.ToString() == sDateHeute)
                    {
                        grid1[6, n].Style.BackColor = Color.LightSalmon;
                    }
                    else
                    {
                        DateTime dtAltesDatum = System.DateTime.Now;
                        string sGridValue = grid1[6, n].Value.ToString();
                        DateTime dtGridValue = DateTime.ParseExact(sGridValue, "dd.MM.yyyy 00:00:00", null);
    
                        if (DateTime.Compare(dtGridValue, dtAltesDatum ) < 0)
                        {
                            grid1[6, n].Style.BackColor = Color.LightSalmon;
                        }
                        else
                        {
                            grid1[6, n].Style.BackColor = Color.LightGreen;
                        }
                    }
                }
            }
    
            private void btnAllesAnzeigen_Click(object sender, EventArgs e)
            {
                GridFuellen();
            }
    


  • Versuche mal den Code im Form.Load-Ereignis oder Form.Shown-Ereignis aufzurufen.



  • Super! Dankeschön!
    Wenn ich den Code im Load Ereignis aufrufe, klappt es!


Log in to reply