Public Class Form1 Dim image As PictureBox Dim x, y, diff, dify As Int32 Dim vignette As Integer Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Dim i As Int32 Panel1.Controls.Clear() y = 0 x = 0 For i = 1 To 9 image = New PictureBox image.Width = 100 image.Height = 100 image.BorderStyle = BorderStyle.Fixed3D image.Visible = True image.Name = "mapicture " & i vignette = 90 image.SetBounds(x, y, vignette, vignette) x += vignette 'vérifier s'il ya suffisamment d'espace dans l'axe x pour ajouter une image If x >= Panel1.Width Or (x + vignette) > Panel1.Width Then diff = Panel1.Width - x 'S'il n'y a pas assez d'espace, commencer une nouvelle ligne ci-dessous y += vignette x = 0 End If If ((y + vignette) > Panel1.Height) Then dify = Panel1.Height - y End If AddHandler image.MouseDown, AddressOf PictureBox_MouseDown AddHandler image.MouseMove, AddressOf PictureBox_MouseMove AddHandler image.DoubleClick, AddressOf PictureBox_DoubleClick 'ajouter une image Panel1.Controls.Add(image) Next i End Sub Private Sub PictureBox_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) If e.Button = Windows.Forms.MouseButtons.Left Then x = e.X y = e.Y End If End Sub Private Sub PictureBox_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) If e.Button = Windows.Forms.MouseButtons.Left Then sender.Left += (e.X - x) sender.Top += (e.Y - y) End If End Sub Private Sub PictureBox_DoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) ' On récupère le contrôle cliqué ... Dim pictTmp As PictureBox = DirectCast(sender, PictureBox) MsgBox(pictTmp.Name) End Sub End Class
Public Class Form1 Dim texte As TextBox Dim x, y, diff, dify As Int32 Dim vignette As Integer Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Dim i As Int32 Panel1.Controls.Clear() y = 0 x = 0 For i = 1 To 9 'création TextBox texte = New TextBox() texte.Multiline = True texte.Width = 100 texte.Height = 100 texte.BorderStyle = BorderStyle.Fixed3D texte.Visible = True texte.Name = "montexte " & i vignette = 90 texte.SetBounds(x, y, vignette, vignette) x += vignette 'vérifier s'il ya suffisamment d'espace dans l'axe x pour ajouter une image If x >= Panel1.Width Or (x + vignette) > Panel1.Width Then diff = Panel1.Width - x 'S'il n'y a pas assez d'espace, commencer une nouvelle ligne ci-dessous y += vignette x = 0 End If If ((y + vignette) > Panel1.Height) Then dify = Panel1.Height - y End If AddHandler texte.DoubleClick, AddressOf TextBox_DoubleClick 'ajouter une textbox Panel1.Controls.Add(texte) Next i End Sub Private Sub TextBox_DoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Dim objFont As System.Drawing.Font objFont = New System.Drawing.Font("Arial", 48, FontStyle.Bold Or FontStyle.Italic) ' On récupère le contrôle cliqué ... Dim textTmp As TextBox = DirectCast(sender, TextBox) textTmp.Name = Replace(textTmp.Name, "montexte", "") textTmp.Text = textTmp.Name textTmp.TextAlign = HorizontalAlignment.Center textTmp.Font = objFont End Sub