none
DataGridView - Neu eingefügte Zeile beim Erstellen formatieren RRS feed

  • Frage

  • Guten Morgen,

    ich habe noch teilweise Probleme das DataGridView betreffend.

    Ich habe eine Funktion geschrieben, die mir oberhalb der aktivierten Zeile eine neue einfügen soll.

    Das funktioniert soweit auch ganz gut, allerdings hat die vierte Spalte der Originalzeile eine Datumsformatierung und wenn ich dann in die vierte Spalte der erstellten Zeile klicke, bekomme ich eine Exception geworfen.

    Daher meine Frage, ob es möglich ist direkt beim Erstellen der neuen Zeile die vierte Spalte zu formatieren.

    Mein Ansatz war folgender: 

    private void tmiEinfügen_Click(object sender, EventArgs e)
            {
                try
                {
                    ToolStripDropDownItem dropDownItem = (ToolStripDropDownItem)sender;
                    ContextMenuStrip menuStrip = (ContextMenuStrip)dropDownItem.Owner;
                    DataGridView dataGrid = (DataGridView)menuStrip.SourceControl;
                    dataGrid.Rows.Insert(dataGrid.SelectedRows[0].Index);
                    foreach (DataGridViewRow item in dataGrid.Rows)
    	        {
                        if (item.Cells[3] == null)
                        {
                            item.Cells[3].Value = new DateTime(1900,01,01);
                            //this.dataGrid.Columns["Faelligkeit"].DefaultCellStyle.Format = "d";
                        }
    	        }
                }
                catch
                {
                    MessageBox.Show("Bitte wählen Sie zuerst eine Zeile aus.", "Achtung");
                }
            }

    Da das Programm an sich schon von einer anderen Person erstellt wurde, darf ich an der Originalformatierung nicht viele Änderungen durchführen.

    Mit freundlichen Grüßen 

    Christy



    Mittwoch, 26. März 2014 09:02

Antworten

  • Guten Morgen,

    danke für deine Antwort aber ich habe den Fehler gestern Abend noch gefunden,

    da ich in diesem Fall dummerweise einfach nur vergessen hatte etwas zu schreiben xD

                  if (item.Cells[3].Value == null)
                        {
                            item.Cells[3].Value = new DateTime(1900,01,01);
                        }

    So sieht es nun aus und funktioniert auch ohne Probleme.

    Mit freundlichen Grüßen

    Christy

    Freitag, 28. März 2014 08:12

Alle Antworten