System.NullReferenceException Problem :/
-
hi leute ich habe mal wieder nen nervigen Fehler den ich einfach nicht beheben kann :&... die Fehlermeldung lautet (btw nur zur laufzeit) "System.NullReferenceException: Object reference not set to an instance of an object."
hier der Source
public void NCheck_Click(object sender, EventArgs e) { //Vergleiche eingaben, erstelle Fehler Textbox //etc. DataGridView oDGV = new DataGridView(); oDGV.ColumnCount = dataGridView1.ColumnCount; oDGV.RowCount = dataGridView1.RowCount; MessageBox.Show(oDGV.ColumnCount.ToString()); MessageBox.Show(oDGV.RowCount.ToString()); for (int g = 0; g <= 26; g++) { for (int x = 0; x <= 81; x++) { MessageBox.Show(oDGV[g,x].Value.ToString()); } } }
-
Tja, schmeiß dein Debugger an und setze Haltepunkte und schau selbst was Null ist
-
habe ich ja schon längst...
MessageBox.Show(oDGV[g,x].Value.ToString());
... nur verstehe ich nicht wie ich den Fehler lösen soll da ich doch bereits am Anfang des Events eine neue Instanz des oDVG objektes erstellt habe...
(sorry bin seit 2 tagen ohne schlaf und etwas verplant , vllt liegts daran)
-
Naja du sollst debuggen und nicht irgendwas Ausgeben, vielleicht ist schon irgendwo anders etwas null...Geh lieber schlafen eh du noch Fehler baust.
-
ich meinte das mein debugger mir genau in der zeile nen Fehler ausgibt aber ja, ich denke du hast recht ich bin jtzt schlafen und morgen sieht das alles hoffentlich schon ganz anders aus
gute nacht
-
Schau dir soch das in "Watch" (Variablenfenster) jeweils
oDGV[g,x]
,oDGV[g,x].Value
,oDGV[g,x].Value.ToString()
anschauen. Vielleicht gibt ja auch ToString null zurück.Du kannst das aber auch aufspaten:
var _v1 = oDGV[g,x]; var _v2 = _v1.Value; var _v3 = _v2.ToString(); MessageBox.Show(_v3);
so weißt du genau wo der Fehler ist
-
Die Exception muss geworfen werden, da Value noch keine Werte enthält...
Hier ein Versuch...try { //Vergleiche eingaben, erstelle Fehler Textbox //etc. DataGridView oDGV = new DataGridView(); oDGV.ColumnCount = dataGridView1.ColumnCount;//26? oDGV.RowCount = dataGridView1.RowCount;//81? MessageBox.Show(oDGV.ColumnCount.ToString()); MessageBox.Show(oDGV.RowCount.ToString()); for (int g = 0; g <= 25; g++)//Value mit Daten füllen: { for (int x = 0; x <= 80; x++) { oDGV[g, x].Value = g.ToString() + "/" + x.ToString(); } } for (int g = 0; g <= 26; g++) { for (int x = 0; x <= 81; x++) { MessageBox.Show(oDGV[g, x].Value.ToString());//Hier viel Spaß beim bestätigen: } } oDGV.Width = this.Width - 50; oDGV.Height = this.Height - 50; this.Controls.Add(oDGV);//Zur Kontrolle erzeugen und anzeigen: } catch (Exception ex) { MessageBox.Show(ex.Message); }
Gruß,
Doug_HH
-
danke, ihr seit mal wieder die besten ^^
yo das mitm try-catch block habe ich kurz bevor ich hier nochmal vorbeigeschaut habe herausgefunden^^
und nun kann ich endlich beruhigt schlafen gehen