フォーム上に複数のパネルを配置して、ある条件のもとで各パネルを表示することで異なる処理が行えます。
今回は2個のパネルをフォーム上に貼り、それぞれのパネルは異なるコントロールを配置します。
1個目はテキストボックスを5個配置し、2個目のパネルはチェックボックスを5個配置します。
更に、パネルの切り替え用にラジオボタンを2個設置します。 デザイン画面では以下の様になります。
尚、ソースは以下の様になります。
フォームロード時にフォームの幅を1個のパネルのみを表示する幅に設定し、パネル2の座標位置をパネル1と同じにします。 また、初期のパネル切替を行う為にパネル1の状態を「ON」にします。
パネルそれぞれに対応するラジオボタンのクリック時に、対応するパネル切替を行う様にしています。
2個のパネルの表示切替
Public Class frmPanelM1
' フォームロード時処理
Private Sub frmPanelM1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'ウインドウの横幅を1個のパネルのみ表示する「300」にする
Me.Width = 300
'パネル2の横位置をパネル1と同位置にする
Me.Panel2.Left = Me.Panel1.Left
'最初のパネル1に設定
Me.RadioButton1.Checked = True
End Sub
' ラジオボタン1変化時処理
Private Sub RadioButton1_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton1.CheckedChanged
If DirectCast(sender, RadioButton).Checked = True Then
' ラジオボタン1がONの場合、パネル1表示
Call Me.DisplayPanel(1)
End If
End Sub
' ラジオボタン2変化時処理
Private Sub RadioButton2_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton2.CheckedChanged
If DirectCast(sender, RadioButton).Checked = True Then
' ラジオボタン2がONの場合、パネル2表示
Call Me.DisplayPanel(2)
End If
End Sub
' パネル表示切替処理
Private Sub DisplayPanel(ByVal intPanelNo As Integer)
Select Case intPanelNo
Case 1
Me.Panel1.Visible = True
Me.Panel2.Visible = False
Case 2
Me.Panel1.Visible = False
Me.Panel2.Visible = True
End Select
End Sub
End Class
これを実行すると以下の様な表示になります。右側はラジオボタン2をクリックしてパネル2を表示した状態です。
(ラジオボタンを交互にチェックすれば、パネル1⇔パネル2が交互に表示されます)
関連する記事
⇒標準コントロールのパネルの使い方について(Panel)⇒パネル上にピクチャボックスを貼付て画像スクロールさせる方法ついて(Panel、PictureBox)
PR
コメント