Elemente ansprechen

tombo82

Mitglied
Hallo, ich habe 11 Textboxen, welche ich aus einer Listbox mit Hilfe von drag an Drop füllen will-> Eintrag in der LB wird markiert, und denn in die Textbox reingezogen, In der LB verschwindet der Eintrag, funktioniert alles super, ABER ich habe ja noch 10 weitere, will aber mögllichst wenig Code haben, kann ich diese Funktion irgendwie veralgemeinern?

Also das ich bei jedem Drag&drop Vorgang ein und die selbe Funktion anspringe und diese Funktion "erkennt", welche Textbox gemeint ist?

Code:
 Private Sub TextBox8_DragEnter(ByVal sender As Object, ByVal e As DragEventArgs) Handles TextBox8.DragEnter
        If e.Data.GetDataPresent(DataFormats.Text) Then
            ' wenn die Strg-Taste gedrückt ist
            
            e.Effect = DragDropEffects.Move
        Else
            e.Effect = DragDropEffects.None
        End If
 End Sub

 Private Sub TextBox8_DragDrop(ByVal sender As Object, ByVal e As DragEventArgs) Handles TextBox8.DragDrop
        TextBox8.Text = e.Data.GetData(DataFormats.Text)
        If (e.KeyState And 8) <> 8 Then

        End If
    End Sub

    Private Sub listbox1_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs) Handles ListBox1.MouseDown
        ListBox1.DoDragDrop(ListBox1.SelectedItem.ToString, DragDropEffects.Move)
    End Sub
 
Hallo tombo82,

wenn stets das gleiche passiert sowie es bei dir aussieht dann ist eine Vereinfachung bzw. Reduzierung des Quelltextes möglich. Der Parameter sender beinhalted das Object welches gerade benutzt wird somit müsstest du nur abfragen ob sender eine TextBox ist und kannst dann den Wert zuweisen.

Sind alle TextBoxen zu Beginn vorhanden also nicht erst während der Laufzeit so kannst du dann die jeweilige Methode den anderen TextBoxen zuweisen im Ereignis Menü.

Erstellst du sie erst zur Laufzeit was in deinem Beispiel nicht zutrifft dann musst du einen EventHandler definieren.

mfg ;-)
 
Zurück