NullReferenceException bei DateTimePicker



  • Hallo,

    in einem DataGridView habe ich einen DateTimePicker.
    Dem Picker weise ich beim Load Event der Form folgendes zu:

    dtpNeueBestellungLiefertermin = new DateTimePicker();
    dtpNeueBestellungLiefertermin.Format = DateTimePickerFormat.Short;
    dtpNeueBestellungLiefertermin.Visible = false;
                dgNeueBestellungBestellpositionen.Controls.Add(dtpNeueBestellungLiefertermin);
    dtpNeueBestellungLiefertermin.ValueChanged += this.dtpNeueBestellungLiefertermin_ValueChanged;
    

    Beim Ändern des Wertes (Klick in die Zelle) erhalte ich die Fehlermeldung:

    private void dgNeueBestellungBestellpositionen_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
            {
                try
                {
                    if ((dgNeueBestellungBestellpositionen.Focused) && (dgNeueBestellungBestellpositionen.CurrentCell.ColumnIndex == 6))
                    {
                        dtpNeueBestellungLiefertermin.Location = dgNeueBestellungBestellpositionen.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, false).Location;
                        dtpNeueBestellungLiefertermin.Visible = true;
    
                        if (dgNeueBestellungBestellpositionen.CurrentCell.Value != DBNull.Value)
                        {
                            dtpNeueBestellungLiefertermin.Value = (DateTime)dgNeueBestellungBestellpositionen.CurrentCell.Value; // hier wird die Fehlermeldung ausgelöst
                        }
                        else
                        {
                            dtpNeueBestellungLiefertermin.Value = DateTime.Today;
                        }
                    }
                    else
                    {
                        dtpNeueBestellungLiefertermin.Visible = false;
                    }
                }
                catch(Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
    

    In der Zeile dtpNeueBestellungLiefertermin.Value = (DateTime)dgNeueBestellungBestellpositionen.CurrentCell.Value; kommt die Fehlermeldung.

    Die Zeile im DataGridView fülle ich "von Hand":

    string[] row0 = { "", bestellposition.ID, bestellposition.Bezeichnung, bestellposition.Nummer, bestellposition.Norm,                                bestellposition.Preis.ToString(), DateTime.Today.ToShortDateString() };
                    dgNeueBestellungBestellpositionen.Rows.Add(row0);
    

    Übergebe ich das Datum falsch zum DataGridView?
    Auch DateTime.Today.ToString("MM.mm.yyyy"); verursacht eine Fehlermeldung.


Anmelden zum Antworten