Ciao, ho scritto un controllo per fare ciò (trascinare elementi), il problema è che l'ho scritto in c#, se vuoi ti passo il codice (che magari puoi tradurre in vb) oppure puoi usarlo come libreria (senza tradurlo in vb).
è possibile utilizzare qualsiasi elemento si voglia (linee, rettangoli, immagini ecc...) semplicemente ereditando da "Elemento" e sovrascrivendo il metodo scrivi (come mostrato nella classe alla fine dell'esempio)

ecco una bozza di codice di come usarlo in vb.net (importato come libreria esterna)
codice:
Imports U235Anteprima

Public Class Form1
    'inserisco nell'anteprima un immagine
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
            'dichiaro un tipo "Immagine" (più in basso una spiegazione di come creare tipi da utilizzare (esempio una linea)
            Dim imm As U235Anteprima.Immagine = New U235Anteprima.Immagine()
            'imposto l'immagine prendendo il percorso da OpenFileDialog1
            imm.Image = New Bitmap(OpenFileDialog1.FileName)
            'le do un nome
            imm.Nome = "immagine"
            'lo aggiungo alla lista di elementi dell'anteprima
            anteprima1.ListaElementi.Add(imm)
            'faccio ridisegnegnare l'anteprima
            anteprima1.Invalidate()
        End If
    End Sub
    'scelta font della scritta
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        If FontDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
            'cambio font alla textbox che conterrà la scritta
            Me.TextBox1.Font = FontDialog1.Font
        End If
    End Sub

    'al click creo un elemento di tipo "Scritta" e recupero il font e il testo dalla textbox1
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        'dichiaro un tipo Scritta
        Dim stringa As U235Anteprima.Stringa = New U235Anteprima.Stringa()
        'imposto il font prendendolo dalla texbox1 (precedentemente impostato)
        stringa.Font = FontDialog1.Font
        'imposto il testo prendendolo dalla texbox1 (precedentemente scritto)
        stringa.Testo = Me.TextBox1.Text
        'imposto il nome che preferisco
        stringa.Nome = "stringa"
        'lo aggiungo alla lista
        anteprima1.ListaElementi.Add(stringa)
        'faccio ridisegnegnare l'anteprima
        anteprima1.Invalidate()
    End Sub

    'questo evento scaturisce quando clicco su un elemento con il tasto dx del mouse, in questo caso cancello l'elemento dalla lista
    Private Sub anteprima1_TastoDX(ByVal sender As System.Object, ByVal elemento As U235Anteprima.IElemento) Handles anteprima1.TastoDX
        'cancello l'elemento dalla lista
        anteprima1.ListaElementi.Remove(elemento)
    End Sub

    'questo evento scaturisce quando trascino un elemento nell'anteprima
    Private Sub anteprima1_Trascinamento(ByVal sender As System.Object, ByVal elemento As U235Anteprima.IElemento) Handles anteprima1.Trascinamento
        'qui inserisci il tuo codice per la stampante ricavando la posizione dall'elemento (che puoi ampliare ereditanto come vuoi)
        'comunque la posizione degli elementi la puoi senpre ricavare dalla lista dell'anteprima senza attendere o usare questo evento con :

        'elemento.Point
    End Sub

    'questo l'ho inserito per mostrarti il funzionamento della creazione di nuovi tipi di elementi (funziona come gli altri)
    'in basso potrai vedere un esempio di come creare appunto nuovi elementi (linee rettangoli icone ecc...)
    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Dim Linea As Linea = New Linea()
        Linea.Pen = New Pen(Color.AliceBlue, 5)
        Linea.Size = New Size(NumericUpDown1.Value, 5)
        Linea.CorrezioneAngolo = 5
        Linea.Point = New Point(20, 20)
        Linea.Nome = "stringa"
        anteprima1.ListaElementi.Add(Linea)
        anteprima1.Invalidate()
    End Sub
End Class

'questo esempio mostra come creare nuovi elementi. basta ereditare da Elemento e sovrascrivere la sub scrivi, 
'aggiungendo all'occorenza (come in questo caso il "Pen") altre variabili utili al caso.
'il controllo chiamerà il metodo scrivi e modificherà la posizione data da "point"
Public Class Linea
    Inherits Elemento

    Public Pen As Pen
    Public CorrezioneAngolo As Integer
    'sovrascrivo il metodo scrivi della classe di base
    Public Overrides Sub Scrivi(ByRef g As System.Windows.Forms.PaintEventArgs)
        'scrivo l'elemento grafico nel graphics del controllo
        g.Graphics.DrawLine(Pen, Point.X, Point.Y, Point.X + Size.Width, Point.Y + Size.Height - CorrezioneAngolo)
        MyBase.Scrivi(g)
    End Sub
End Class
qui il progetto demo in vb.net

qui il progetto del controllo (in c#)

P.S. i progetti sono solo delle bozze anche se perfettamente funzionanti.