Problema con Label

Iniciado por David Vans, 9 Octubre 2007, 21:45 PM

0 Miembros y 2 Visitantes están viendo este tema.

David Vans

Hola a todos tengo un problema con un label.

Quiero usar la propiedad autosize pero que me marque el alto del objeto no el ancho

por ejemplo quiero que el ancho sea fijo y se valla modificando el alto del label en funcion de las lineas de ese label.

no se si me  habeis entendido un saludo.

Hadess_inf

Haber si entendi bien lo que quieres es que cuando le mandes una cadena a un label y esta se pasa de un width especifico, se debe de saltar a la siquiente linea dentro del label, y asi sucesivamente ¿?, es esto correcto ¿?, no se si haya una propiedad que haga posible esto, con un chr(13) deberia de funcionar

label1.text = "cadena1" & chr(13) & "cadena2)

David Vans

No me sirve
porquie el texto luego puede cambiar en ejecucion y ponerse menos texto y ademas quiero que el ancho del objeto sea simpre 200 y si pongo Cadena1 & ...
Yo no se lo que me ocupa cadena.

Meta

Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

Hadess_inf

Muy bien, entonces vamos a ver como le hacemos: hacemos unas pruebas con el label, y veamos cuantos pixeles ocupa una fila y una columna dentro del label, creamos un nuevo proyecto agregamos un label, un textbox, un boton y en el evento load, ponemos lo siguiente:

label1.text ="a"
msgbox label1.width 'con eso sabemos que un caracter ocupa 13 pixeles luego lo eliminas

Bueno entonces si tu deseas que tu width sea de 200px, hagamos lo siguiente en el evento click del boton.
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim txt As String = TextBox1.Text 'se recupera la cadena
        Dim pix As Integer = 13 'cantidad que ocupa un caracter en pixeles
        Dim a As Integer = txt.ToString.Length 'total de caracteres de la cadena
        Dim tperm As Integer = 200 / pix 'numero de caracteres por fila
        Dim b, c As Integer 'contador
        c = 1
        Dim aux As String 'variable temporal que tomara los valores de cada fila
        For b = 0 To a - 1
            If c = tperm Then
                Label1.Text = Label1.Text & Chr(13) & aux
                aux = ""
                c = 1
            Else
                aux = aux & txt.ToString.Substring(b, 1)
                c = c + 1
            End If
        Next
    End Sub

Quizas eso funcione, saludos.