none
datagridviewでの計算について RRS feed

  • 質問

  • Form1のdatagridviewで行ごとのセル1*セル2合計計算をdatatableのイベントに記述しています。

    デバッグにForm1から起動してdatagridviewに入力すると問題なく計算されるのですが、

    Form2からForm1を起動してdatagridviewに入力すると合計計算でオブジェクト参照のエラーがでてしまいます。

    どうしてForm1からだとOKなのに別フォーム経由だと計算されないのでしょうか?

     

    2006年11月21日 9:46

すべての返信

  • 以下と同じようなことではないでしょうか?

    デバッグでCrystalReportsのデータが表示されないのですが
    http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=932381&SiteID=7

    2006年11月22日 0:48
    モデレータ
  • 参考スレッドをみてみましたが、理解が難しいです。勉強不足で申し訳ないです。

    同じようなことかどうかも判断つきませんでしたので、コードを記述します。

    Form1(一覧画面)

    Form2(登録画面)mainテーブル-subテーブルのリレーションです。subテーブルがdatagridviewです。

    Form1からForm2を呼出す時、Form1側ボタンクリック

       Dim frm As New Form2()

       frm.ShowDialog(Me)

    Form2のLoadイベント

        Me.main_TTableAdapter.Fill(Me.DataSet.main_T)

        Me.sub_TTableAdapter.Fill(Me.DataSet.sub_T)

        Me.main_TBindingSource.AddNew()

    Form2のdatagridviewのenterイベント

           Me.main_TBindingSource.EndEdit()

    subテーブルのDataSet.vb(sub_TDataTable_ColumnChangingイベント)

         If (e.Column.ColumnName=Me.値1Column.ColunmName)Then

           Try

              Form2.sub_TDataGridView.CurrntRow.Cells(5).Value= _

              Form2.sub_TDataGridView.CurrntRow.Cells(2).Value * e.ProposedValue

              e.Row.SetColumnError(e.Column,"")

           Catch ex As Exception

              e.Row.SetColumnError(e.Column,ex.Message)

           End Try

         End If

    以上を記述しています。

    「暗黙のインスタンス」というのが関係しているのでしょうか?

     

    2006年11月24日 2:41
  • enterイベントの中にForm2.sub_TDataGridViewとForm2.sub_TDataGridViewがあります。見る限り、ここで既定のインスタンスが新たに生成されています。自分自信のインスタンスを操作するにはMeを使います。

    一番最初の質問で、

     ayuko さんからの引用

    Form2からForm1を起動してdatagridviewに入力すると合計計算でオブジェクト参照のエラーがでてしまいます。

    とあるのですが、Form2からForm1をふたたび開き直しているのでしょうか? この辺りの情報が無くて、ちょっとよくわかりません。

    2006年11月24日 5:44
    モデレータ