2016-08-01 50 views
0

我有一个vb.net窗口应用程序,它具有通过文本框输入的一些值。 和两个datagridviews,在第一个datagridview,当我在所有列中输入值时,我有一个公式,它从Textboxes和DatagridView1列值中取值。这些计算值应显示在第二个datagridview列中。 为此,我尝试了两种方法,但都显示问题。 首先尝试:从vb.net中的另一个datagridview中获取值给DatagridView添加计算值

//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 

当执行应用程序时,显示低于误差表单之前发生在OnCreateMainForm

Me.MainForm = Global.LogCalculation.Form1()。

附加信息:创建表单时发生错误。有关详细信息,请参阅 Exception.InnerException。错误是:索引超出了 范围。必须是非负数且小于集合的大小。 参数名称:索引

所以我尝试另一种选择i的形式有按钮,当我按下按钮,然后依赖于行数在第一网格视图我将设定值的第二数据网格。 但它工作,如果我在Datagridview1中有一行。如果多于一行,它会在第二行显示错误。

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 

其实我只想要第一个选项。但是这两起案件都失败了。

回答

0

在第一个事件中,您的intRow & iRow可能未定义。

试试这个,

LogCalValue.Item(0, e.RowIndex).Value = LogCalcEnter.Item(0, e.RowIndex).Value * fPorCutoff.Text 

LogCalValue.Item(1, e.RowIndex).Value = LogCalcEnter.Item(1, e.RowIndex).Value * fSWCutoff.Text 
+0

号相同错误发生。 – Anu

+0

选中此链接(http://stackoverflow.com/questions/11887232/error-inside-of-application-designer-vb-inside-of-oncreatemainform-sub),它可能与您的问题有关。 – Leprechaun

相关问题