Oppure

Loading
26/10/14 18:18
RUDDER
ciao a tutti volevo chiedere chiarificazioni sul comando flowlayoutpanel sto usando sharpdevelop 4.4 ho guardato un po' in torno ma non ho capito bene che potenzialità ha questo comando. che mi permette di fare? grazie mille
aaa
04/01/15 9:22
ademontis
Ciao non so se ti serve ancora aiuto, comunqqe il FlowLayoutPanel serve generalmente per incorporare elementi che debbano essere disposti uno affiancato all' altro da runtime senza fornire le coordinate specifiche.
Il tipico esempio é un image browser... un utente seleziona da un FileDialog 5,6, 30 immagini, e le loro anteprima vengono aggiunte ad un flowlayoutpanel già affiancate una all' altra. Ovviamente tu dovrai programmaticamente definire l' oggetto picturebox che incorpora ogni singolo file con un ciclo for each.
Puoi configurare 3 parametri importanti del FLP:
- direction: letf to tigh oppure right to left
- wrapcontent: true or false
- autoscroll: true or false

se vuoi creare un image browser per esempio aggiungi un FLP al form, e un pulsante, al cui evento click aggiungi:

  Dim ofd As New OpenFileDialog With {.Filter = "Supported Files|*.jpg;*.bmp;*.tiff;*.gif"}
  ofd.Multiselect = True
        If ofd.ShowDialog() = Windows.Forms.DialogResult.OK Then
            FlowLayoutPanel1.Controls.Clear()
            For Each Files As String In ofd.FileNames
                Dim im As New PictureBox
                im.Height = ' assegnagli il valore che vuoi
                im.Width = ' idem 
                im.SizeMode = PictureBoxSizeMode.Zoom
                im.Image = Image.FromFile(Files)
                Application.DoEvents()
                FlowLayoutPanel1.Controls.Add(im)
                AddHandler im.Click, AddressOf PictureBox_Click
            Next
        End If


ovviamente poi ti dovrai occupare di creare l' evento click programmaticamente:

 Private Sub PictureBox_Click(sender As System.Object, e As System.Windows.Forms.MouseEventArgs)
        PictureBox1.Image = sender.image
        sender.borderstyle = BorderStyle.FixedSingle
        Thread.Sleep(500)
        sender.borderstyle = BorderStyle.None
    End Sub


questo sopra per esempio manda il contenuto del' anteprima selezionata ad una picturebox che la visualizza 'in grande'.
aaa