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をユーザーコントロールに変更して、画面遷移の方法を切り替えるのは得策ではないといった記載もあり、方法を模索しています。
これは聞いたことないのですが、根拠が知りたい気もするので
記載元を教えてください。