Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: David Vans en 9 Octubre 2007, 21:45 pm



Título: Problema con Label
Publicado por: David Vans en 9 Octubre 2007, 21:45 pm
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.


Título: Re: Problema con Label
Publicado por: Hadess_inf en 9 Octubre 2007, 23:47 pm
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)


Título: Re: Problema con Label
Publicado por: David Vans en 10 Octubre 2007, 17:58 pm
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.


Título: Re: Problema con Label
Publicado por: Meta en 10 Octubre 2007, 19:50 pm
Con qué lenguaje.


Título: Re: Problema con Label
Publicado por: Hadess_inf en 11 Octubre 2007, 07:14 am
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.