0

私はmdiparentと多くの子フォームを持っており、以下のように子フォームを呼び出しています

     Private Sub tsmQuotation_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tsmQuotation.Click
            If Application.OpenForms().OfType(Of Quotation).Any Then
                 Quotation.WindowState = FormWindowState.Normal
                 Quotation.Focus()
            Else
                 Quotation.MdiParent = Me
                 Quotation.Show()
            End If
     End Sub

私の最初の疑問は次のとおりです。この Quotation.MdiParent = Me を宣言すると、この行がない場合よりもフォームを開くのに時間がかかります。フォームを開く時間を短縮するにはどうすればよいですか..または何か間違っていますか?

2 番目の疑問は、mdiparent の中心にピクチャボックスを配置したことです。ピクチャボックスを背面に送信しましたが、子フォームを開くと、引用符の上にピクチャボックスが表示されます。子フォームの上ではなく背面にピクチャボックスを表示したいです。

前もって感謝します!!!

4

1 に答える 1

1

がないQuotation.MdiParent = Meと、表示されるフォームは MdiChild になりません。代わりに、それ自体が通常のフォームとして表示されます。画面上でドラッグしてみると、MdiParent フォームに限定されていないことがわかります。

ただし、これによりロードが速くなるかどうかを確認してください。

Private Sub tsmQuotation_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tsmQuotation.Click
    If Application.OpenForms().OfType(Of Quotation).Any Then
        Dim Q As Quotation = Application.OpenForms().OfType(Of Quotation).First
        Q.WindowState = FormWindowState.Normal
        Q.Activate()
    Else
        Dim Q As New Quotation
        Q.MdiParent = Me
        Q.Show()
    End If
End Sub

2 番目の問題については、MdiParent フォームを選択し、BackgroundImage() および BackgroundImageLayout() プロパティを設定します。画像は設計時にはフォームに表示されませんが、アプリケーションを実行すると表示されます。

于 2013-05-11T08:56:59.177 に答える