Respondida Traspasar datos de mas de un Textbox

  • miércoles, 15 de agosto de 2012 13:16
     
     

    Buenas,

    Os pongo en antecedentes haber si me podeis ayudar.

    Tengo el panel2 con dos textbox el TextBox4 y TextBox2 y el panel1 con TextBox1 y TextBox3. Entonces lo que quiero es que al arrastrar el panel 2 hacia el panel 1 se copie lo que hay en el TextBox2 al TextBox1 y lo que hay en el TextBox4 al TextBox3.

    De momento lo que he encontrado es poder copiar del TextBox2 al TextBox1 pero no he tenido exito en hacerlo todo a la vez.

    Os dejo el codigo he tengo de momento.

    Private MouseIsDown As Boolean = False
       
        Private Sub TextBox1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Panel1.DragDrop
            TextBox1.Text = e.Data.GetData(DataFormats.Text)

        End Sub

        Private Sub TextBox1_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Panel1.DragEnter
        
            If (e.Data.GetDataPresent(DataFormats.Text)) Then
               
                e.Effect = DragDropEffects.Link
            Else
               
                e.Effect = DragDropEffects.Link
            End If
        End Sub


        Private Sub TextBox2_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Panel2.MouseDown

           
            MouseIsDown = True
        End Sub

        Private Sub TextBox2_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Panel2.MouseMove
           
           
            If MouseIsDown Then
             
                TextBox2.DoDragDrop(TextBox2.Text, DragDropEffects.Link)

            End If
            
            MouseIsDown = False

        End Sub

    Gracias de antemano y un saludo a todos


    • Editado Darkchop miércoles, 15 de agosto de 2012 13:37 Modificar codigo
    •  

Todas las respuestas

  • miércoles, 15 de agosto de 2012 17:29
     
     Respondida Tiene código

    Concateno los textos usando el caracter \u00A0, para permitir que los textboxes sean multiline. Si por algún motivo tus textos usan el espacio de ancho cero, deberás buscar otro delimitador (digamos \u4910).

    Arrastras haciendo clic desde el client area del panel2 y sueltas sobre cualquier lugar del panel1.

    Imports System.Text
    
    Public Class Form1
    
        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            Panel1.AllowDrop = True
        End Sub
    
        Private Sub Panel2_MouseMove(sender As System.Object, e As System.Windows.Forms.MouseEventArgs) Handles Panel2.MouseMove
    
            If e.Button = Windows.Forms.MouseButtons.Left Then
                Dim sb As New StringBuilder
    
                sb.Append(Panel2.Controls("TextBox2").Text)
                sb.Append(ChrW(&HA0))
                sb.Append(Panel2.Controls("TextBox4").Text)
    
                Panel2.DoDragDrop(sb.ToString(), DragDropEffects.Copy)
            End If
        End Sub
    
        Private Sub Panel1_DragEnter(sender As System.Object, e As System.Windows.Forms.DragEventArgs) Handles Panel1.DragEnter
    
            If e.Data.GetDataPresent(DataFormats.Text) Then
                e.Effect = DragDropEffects.Copy
            Else
                e.Effect = DragDropEffects.None
            End If
    
        End Sub
    
        Private Sub Panel1_DragDrop(sender As System.Object, e As System.Windows.Forms.DragEventArgs) Handles Panel1.DragDrop
            Dim datos() As String = e.Data.GetData(DataFormats.Text).ToString().Split(ChrW(&HA0))
    
            If datos.Length = 2 Then
                Panel1.Controls("TextBox1").Text = datos(0)
                Panel1.Controls("TextBox3").Text = datos(1)
            End If
        End Sub
    End Class
    
    

  • jueves, 16 de agosto de 2012 7:55
     
     

    Walter Muchas Gracias por la informacion la verdad es que es lo que estaba buscando.

    Otra consulta relacionada con este tema. Yo lo que quiero es pasar esta informacion y otra entre dos Forms(hijos) el codigo que me as puesto me sirve para pasar texto de un texbox a otro de otro form esto es genial.

    Pero mi otra pregunta seria si se puede pasar Progressbar, botones, Checkbox y sus codigos hechos para el progressbar o los botones o los checkbox, no se si me explico bien???

    te agradeceria si me dices si esto es posible o no.

    Muchas gracias de antemano y un saludo.


  • jueves, 16 de agosto de 2012 17:42
     
     
    okis ya lo he marcado como respuesta pero me puedes contestar igualmente????