Ich habe eine vb.net Windows-Anwendung, die einige Werte hat, die ich über das Textfeld eingegeben habe. Und zwei Datagridviews, in der ersten Datagridview, wenn ich Werte in allen Spalten eingeben, habe ich eine Formel, die Wert aus Textboxes und DatagridView1 Spaltenwerte nimmt. Dieser berechnete Wert sollte in den zweiten DataGridview-Spalten angezeigt werden. Dafür habe ich zwei Möglichkeiten ausprobiert, aber beide zeigen ein Problem. Erster Versuch:Add berechneten Wert zu DatagridView von Wert von einem anderen Datagridview in vb.net
//First Datagridview -LogCalcEnter , Second Datagrid - LogCalValue
Private Sub LogCalcEnter_CellValueChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles LogCalcEnter.CellValueChanged
LogCalValue.Rows(intRow).Cells(0).Value = LogCalcEnter.Rows(iRow).Cells(0).Value * fPorCutoff.Text
LogCalValue.Rows(intRow).Cells(1).Value = LogCalcEnter.Rows(iRow).Cells(1).Value * fSWCutoff.Text
End Sub
Wenn die Anwendung ausgeführt wird, bevor das Formular unten zeigt Fehler tritt bei
Me.MainForm = Global.LogCalculation.Form1
in OnCreateMainForm().
Weitere Informationen: Beim Erstellen des Formulars ist ein Fehler aufgetreten. Weitere Informationen finden Sie unter Exception.InnerException. Der Fehler lautet: Index war außerhalb von Bereich. Muss nicht negativ und kleiner als die Größe der Sammlung sein. Parametername: Index
Also habe ich versucht, eine andere Option i-Button in Form haben, wenn i-Taste drücken, hängt dann von der Anzahl der Zeilen im Hinblick ersten Gitter i die Werte für die zweite Datagrid setzen wird. Aber es funktioniert, wenn ich eine Zeile in Datagridview1 habe. Wenn mehr als eine Zeile vorhanden ist, wird in der zweiten Zeile ein Fehler angezeigt.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim oLog As New Log
oLog.sWellName = tWellname.Text
oLog.fPoroCutoff = fPorCutoff.Text
oLog.fSWCutOff = fSWCutoff.Text
oLog.fN = fN.Text
oLog.fM = fM.Text
oLog.fA = fA.Text
oLog.fRW = fRW.Text
For iRow = 0 To LogCalcEnter.Rows.Count - 1
If (Trim(LogCalcEnter.Rows(iRow).Cells(0).Value) <> "" And Trim(LogCalcEnter.Rows(iRow).Cells(1).Value) <> "" And Trim(LogCalcEnter.Rows(iRow).Cells(2).Value) <> "") Then
LogCalValue.Rows(iRow).Cells(0).Value = LogCalcEnter.Rows(iRow).Cells(0).Value * oLog.fPoroCutoff
LogCalValue.Rows(iRow).Cells(1).Value = LogCalcEnter.Rows(iRow).Cells(1).Value * oLog.fSWCutOff
LogCalValue.Rows(iRow).Cells(2).Value = LogCalcEnter.Rows(iRow).Cells(2).Value * oLog.fN
End If
Next iRow
End Sub
Eigentlich möchte ich nur die erste Option. Aber hier werden diese beiden Fälle gescheitert.
Nr gleichen Fehler ist aufgetreten. – Anu
Überprüfen Sie diese [link] (http://stackoverflow.com/questions/11887232/error-inside-of-application-designer-vb-inside-of-oncreatemainform-sub), es könnte mit Ihrem Problem verbunden sein. – Leprechaun