C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■102993 / 1階層)  WindowsFormアプリケーションの画面遷移方法変更
□投稿者/ radian (153回)-(2024/03/07(Thu) 11:59:43)
2024/03/07(Thu) 13:32:24 編集(投稿者)
No102990 (たく さん) に返信
> ○質問
> 現在実装済みのWindowsFormアプリケーションがすべてのメニューをFormで作成して画面遷移させています。
> これをユーザーコントロールに変更にして画面遷移をVisibleで制御しようかと思ったのですが、
> ツールボックスからユーザーコントロールの追加で「コンポーネント”   ”を生成できませんでした。
> エラーメッセージ'System.ComponentModel.Win32Exception(0X800004005)):指定されたファイルが見つかりません。'」となり早速うまくいきませんでした。

Visibleを切り替えるのではなく、都度作成したらどうでしょう。
以下は、あくまでイメージですがこんな感じで。
--------------------
Public Class Form1

    Private Sub OnButtonClick(sender As Object, e As EventArgs) Handles _
            Button1.Click,
            Button2.Click,
            Button3.Click

        'PanelにUserControlを追加
        Dim uc As UserControl = Nothing
        Select Case DirectCast(sender, Button).Name
            Case NameOf(Button1)
                uc = New UserControl1
            Case NameOf(Button2)
                uc = New UserControl2
            Case NameOf(Button3)
                uc = New UserControl3
            Case Else
                Return
        End Select
        PanelUC.Controls.Add(uc)
        uc.Dock = DockStyle.Fill

        '以前のUserControlがあれば削除
        If PanelUC.Controls.Count > 1 Then
            Dim ucOld = PanelUC.Controls(0)
            PanelUC.Controls.Remove(ucOld)
            ucOld.Dispose()
        End If

    End Sub

End Class
--------------------


> いろいろ調べているとFormをユーザーコントロールに変更して、画面遷移の方法を切り替えるのは得策ではないといった記載もあり、方法を模索しています。

これは聞いたことないのですが、根拠が知りたい気もするので
記載元を教えてください。

編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←WindowsFormアプリケーションの画面遷移方法変更 /たく 返信無し
 
上記関連ツリー

WindowsFormアプリケーションの画面遷移方法変更 / たく (24/03/02(Sat) 18:46) #102990
Re[1]: WindowsFormアプリケーションの画面遷移方法変更 / ぶなっぷ (24/03/04(Mon) 09:45) #102991
Re[1]: WindowsFormアプリケーションの画面遷移方法変更 / Azulean (24/03/05(Tue) 07:20) #102992
WindowsFormアプリケーションの画面遷移方法変更 / radian (24/03/07(Thu) 11:59) #102993 ←Now

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信