2

フォーム オブジェクトを変数に格納しようとしていますが、成功しません。

このコードは機能しません:

Dim invoice_form As billing_new_invoice

    'Get last remote Row
    Dim last_row As Integer = CType(main.ActiveMdiChild, invoice_form).invoiceitems_new_invoice.Rows.Count - 1

    Dim count_row As Integer = CType(main.ActiveMdiChild, invoice_form).invoiceitems_new_invoice.Rows.Count()

このコードは機能します:

Dim invoice_form As billing_new_invoice

    'Get last remote Row
    Dim last_row As Integer = CType(main.ActiveMdiChild, billing_new_invoice).invoiceitems_new_invoice.Rows.Count - 1

    Dim count_row As Integer = CType(main.ActiveMdiChild, billing_new_invoice).invoiceitems_new_invoice.Rows.Count()

エラー

複数行のコードで使用できる変数 (invoice_form) にフォーム インスタンスを格納する必要がありますが、(Type 'invoice_form' が定義されていません) と書かれています。

4

2 に答える 2

2

問題が何であるかはあまり明確ではありません。私はあなたがこのようなものを探していると思います:

If TypeOf Me.ActiveMdiChild Is billing_new_invoice Then
  Dim invoice_Form As billing_new_invoice = Me.ActiveMdiChild

  Dim last_row As Integer = invoice_form.invoiceitems_new_invoice.Rows.Count - 1
  Dim count_row As Integer = invoice_form.invoiceitems_new_invoice.Rows.Count()

  //'etc

End If

機能しないコードの問題は、型ではなく変数にキャストしようとしていることです。 invoice_formは変数、billing_new_invoice型です。

于 2012-04-24T17:48:58.470 に答える
2

CType は、変数の割り当てではなく、型変換用です。あなたがしたいことは、最初に変数をフォームに割り当ててから、その変数を使用することです:

Dim invoice_form As billing_new_invoice = CType(main.ActiveMdiChild, billing_new_invoice)
Dim last_row As Integer = invoice_form.invoiceitems_new_invoice.Rows.Count - 1
于 2012-04-24T17:49:04.427 に答える