1

複数のフォームが等しいことを表示しようとしています。最初にForm型の変数を宣言し、次に変数に名前を設定してから表示しますが、成功しません。

新しいウィンドウは表示されません。

Dim from_var As New Form
from_var = inventory_stat_item

With from_var
    .MdiParent = main
    .StartPosition = FormStartPosition.CenterScreen
    .Show()
End With

更新: 変数from_varのフォーム名は次のとおりです:(inventory_stat_item | Inventory_edit_item | Inventory_new_item)

4

2 に答える 2

2

事前に作成して新規作成している限り、やりたいことができるはずですForms。この迅速で汚い例のようなもの。

Public Class Form1
    Dim inventory_stat_item As Form2 = New Form2
    Dim inventory_edit_item As Form3 = New Form3
    Dim inventory_new_item As Form4 = New Form4
    Public Sub New()

        ' This call is required by the designer.
        InitializeComponent()

        ' Add any initialization after the InitializeComponent() call.

        showForms(inventory_edit_item)
        showForms(inventory_new_item)
        showForms(inventory_stat_item)

    End Sub

    Private Sub showForms(from_var As Form)
        With from_var
            .MdiParent = Me
            .StartPosition = FormStartPosition.CenterScreen
            .Show()

        End With
    End Sub
End Class
于 2012-08-06T02:10:15.673 に答える
1

それをしてはいけない。あなたが呼ぶたびに、New inventory_stat_item彼らは新しいオブジェクト参照を作成しました。

コードを分割する必要があります

一度呼び出されます(例:フォームの読み込み時)

Dim from_var As New inventory_stat_item

ユーザーが何かをクリックすると呼び出されます

With from_var
    .MdiParent = Me
    .StartPosition = FormStartPosition.CenterScreen
    .Show()
End With
于 2012-08-06T02:02:41.070 に答える