0

フォーム上に3つのPictureBoxがあり、それらは互いに並べて表示されています。フォームの最小値は(502、416)、最大値は(502、1080)です。

ユーザーはMenuStripから選択して、「1」、「2」、「0r」、「3」のPictureBoxを一度に表示できるため、「3」が一番下、「1」が一番上になります。私が必要としているのは、ユーザーがフォームを下にドラッグすると、次のPictureBoxesの位置にスナップするので、ブロック単位で下に移動します。これは、これまでのところ、機能にはほど遠いものです。

    If Me.Height <= (1079) Then
        Me.Height = (732)

    ElseIf Me.Height <= (732) Then
        Me.Height = (424)
    ElseIf 
    ...
    End If 

また、このような変数を作成する方法を新しくすれば、それを理解できるかもしれないと思いました

    If Me.Height <= (1079 to 733) Then
        Me.Height = (732)

正しい構文ではないことは知っていますが、それは一種のアイデアです

私のあまり良くない説明から意味を理解し、正しい方向/コード例に私を向けることができれば、私は最も感謝します:)

ご協力ありがとうございました

4

1 に答える 1

2

Selectステートメントを使用してみることができます。

Select Case Me.Height

    Case 425 To 732
        Me.Height = 424

    Case 733 To 1079
        Me.Height = 732

End Select

あなたのさらなる質問に答えるために。フォームのサイズ変更イベントを使用する場合、フォームの高さを変更するとイベントが再トリガーされるため、アニメーションは興味深いものになります。個人的には、私があなたである場合、次の高さにスナップするという最初のアイデアにとどまり、フォームの高さをアニメーション化する場合は、WPFを真剣に調べます。しかし、これが私があなたに示すと言ったサブルーチンです。私はサイズ変更を開始するために3つのボタンを使用しました。これをフォームサイズ変更イベントに入れる場合は、イベントによるサブルーチンの再実行をブロックしないと、コンピューターがフリーズするので注意してください。

Public Class Form1

    Private Sub Form1_Resize(sender As Object, e As System.EventArgs) Handles Me.Resize
        Me.Text = Me.Height
    End Sub

    Public Sub ChangeFormHeight(fromHeight As Integer, toHeight As Integer)
        If fromHeight > toHeight Then
            For newHeight As Integer = fromHeight To toHeight Step -1
                Me.Height = newHeight
            Next
        Else
            For newHeight As Integer = fromHeight To toHeight
                Me.Height = newHeight
            Next
        End If
    End Sub

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        ChangeFormHeight(Me.Height, 424)
    End Sub

    Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
        ChangeFormHeight(Me.Height, 733)
    End Sub

    Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
        ChangeFormHeight(Me.Height, 1080)
    End Sub

End Class
于 2012-06-12T10:37:43.760 に答える