投稿者 わたなべ  (学生) 投稿日時 2021/9/23 16:18:45
いつもお世話になっております。 

今現在、ボタンを押すと違うタブページに移動するというプログラムを作成しています。
また、タブページ1つ1つには、ボタンが4つ(うち1つはタブページを移動させるボタン)並んでおり、ページを1つ移動するごとに、中のボタンが切り替わるという処理をさせたいです
(例えば、タブページ1にはbutton1,2,3,5が並んでおり、button5を押すとタブページ2に移動。タブページ2には、button2,3,4,5が並ぶ。タブページ3も同様の処理を行い、button3,4,1,5が並ぶ。タブページは4まで)

今のところ書いたプログラムは以下となります。
Public Class Form1

    Dim count As Integer

    Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click

        count += 1

        If count <= 3 Then
            Select Case count
                Case 1
                    TabPage2.Controls.Add(Button2)
                    TabPage2.Controls.Add(Button3)
                    TabPage2.Controls.Add(Button4)
                    TabPage2.Controls.Add(Button5)

                    TabControl1.SelectedTab = TabPage2
                Case 2
                    TabPage3.Controls.Add(Button3)
                    TabPage3.Controls.Add(Button4)
                    TabPage3.Controls.Add(Button1)
                    TabPage3.Controls.Add(Button5)

                    TabControl1.SelectedTab = TabPage3
                Case 3
                    TabPage4.Controls.Add(Button4)
                    TabPage4.Controls.Add(Button1)
                    TabPage4.Controls.Add(Button2)
                    TabPage4.Controls.Add(Button5)

                    TabControl1.SelectedTab = TabPage4
            End Select
        Else
            count = 0
            TabPage1.Controls.Add(Button1)
            TabPage1.Controls.Add(Button2)
            TabPage1.Controls.Add(Button3)
            TabPage1.Controls.Add(Button5)

            TabControl1.SelectedTab = TabPage1
        End If
    End Sub
End Class

上記プログラムは、一応目的の処理を行うことが出来ます。ただ、2つ困った点があります。

1つは、ボタンの場所が動かないことです。
Formのデザインで、タブページ1にbutton1,2,3,5を並べ、上記プログラムを行うと、タブページ2では、button1,2,3の場所にbutton2,3,4と配置されて欲しいのですが、button〇,2,3(〇は何も表示されていない)、といった形で表示されます。そうではなく、タブページ2では、button1,2,3の場所に2,3,4と表示され、タブページ3では、2,3,4の場所に3,4,1と表示してほしいです。

2つ目は、コードが冗長な気がします。
もう少し短く書けないかぁと眺めていて思います。
(2は自分自身が勝手に思っているだけなので、回答して頂かなくても大丈夫です)

1についての、何か良いアイデアがあればいただけないでしょうか。