scorpio 7 Denunciar post Postado Junho 14, 2009 Aop! Sem rodeios.... tem alguma função, que quando um texto não cabe um um label, ele poe tre pontinhos... ? eu não queria fazer algo assim MsgBox(Me.Corpo.Substring(0, 30) & "...") Por que WWW é maior que iii e poderia cortar o texo do mesmo jeito.... To pesando em fazer algo pegando o comprimento do texto, mas vai da um pouco de trabalho já q o label tem duas linhas :P flw Compartilhar este post Link para o post Compartilhar em outros sites
Oenning 0 Denunciar post Postado Junho 14, 2009 Questão interessante, não tenho idéia de como fazer. Como você faria para descobrir o tamanho do texto? Acho que a Library System.Drawning pode ter algo que te ajude... Compartilhar este post Link para o post Compartilhar em outros sites
scorpio 7 Denunciar post Postado Junho 14, 2009 Acho que isso vai me ajudar. http://www.thescarms.com/dotnet/MeasureString.aspx Eu vi muito disso quando tava fazendo meu TCC. Vou da um tempinho agora, depois posto a função aqui. Até ;D Compartilhar este post Link para o post Compartilhar em outros sites
scorpio 7 Denunciar post Postado Junho 14, 2009 Texto: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco " O primeiro label esta com o texto normal. O segundo está com o texto resumido. Ficou OK.] Já o terceiro, não apareceu os ..., ficou como se fosse na linha debaixo. Antes eu tinha colocado esse Me.CreateGraphics dentro da função... notei uma direferença na performance deichando fora.. rs 'Para chamar Dim G As Graphics G = Me.CreateGraphics Dim texto As String = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco " Label8.Text = texto Label9.Text = ResumiTexto(texto, Label9.Width, Label7.Font, G) Label7.Text = ResumiTexto(texto, Label7.Width * 2, Label7.Font, G) 'Função Public Function ResumiTexto(ByVal Texto As String, ByVal Tamanho As Integer, ByVal Fonte As Font, ByVal g As Graphics) As String Dim TamanhoTexto As SizeF TamanhoTexto = g.MeasureString(Texto, Label7.Font) If (TamanhoTexto.Width + g.MeasureString("...", Fonte).Width > Tamanho) Then Texto = Texto.Substring(0, Texto.Length - 1) Return ResumiTexto(Texto, Tamanho, Fonte, g) Else Return Texto & "..." End If End Function Já da pra brinca com isso... rssr -------------- Mudei a função pra isso Public Function ResumiTexto(ByVal Texto As String, ByVal Tamanho As Integer, ByVal Fonte As Font, ByVal g As Graphics) As String Dim TamanhoTexto As SizeF TamanhoTexto = g.MeasureString(Texto, Label7.Font) If (TamanhoTexto.Width + g.MeasureString("...", Fonte).Width > Tamanho) Then Texto = Texto.Substring(0, Texto.LastIndexOf(" "))'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Return ResumiTexto(Texto, Tamanho, Fonte, g) Else Return Texto & "..." End If End Function Acho q vai ficar melhor.. quebrar por palavra. Compartilhar este post Link para o post Compartilhar em outros sites
Oenning 0 Denunciar post Postado Junho 18, 2009 Bacana, não conhecia a função MeasureString. Resolveu o problema ou ainda está dando erro ali na terceira? Compartilhar este post Link para o post Compartilhar em outros sites
scorpio 7 Denunciar post Postado Junho 20, 2009 Olha.. minha idéia mesmo era fazer um prog. pra verifica emails e avisa qunaod chega.. se você usa o outllok 2003 ou 2007 ve umas janelinhas pulando na sua tela... ou até mesmo no MSN.. eu ia fazer mais ou menos isso... mas agora ta aperta a facul.. 27.542.425.423.654.234 trabalhos pra entrega e 2 dias pra faze :lol: quando tiver um pouco mais de tempo eu volto nisso... mas mesmo dessa ultima for continua dando errado. Compartilhar este post Link para o post Compartilhar em outros sites
Oenning 0 Denunciar post Postado Junho 20, 2009 O erro está ali naquelas setas? Eu acho que deve ser usado IndexOf ao invés de LastIndexOf, você precisa pegar até o primeiro espaço começando da posição onde o texto passou dos limites. Compartilhar este post Link para o post Compartilhar em outros sites
scorpio 7 Denunciar post Postado Junho 21, 2009 O erro está ali naquelas setas? Eu acho que deve ser usado IndexOf ao invés de LastIndexOf, você precisa pegar até o primeiro espaço começando da posição onde o texto passou dos limites. Essa função já funciona, mas tem aquele problema da imagem GIF. Essa função ae vai ser executada enquanto o comprimento for maior, vai retirando as palavras até que fique do tamanho do label. Compartilhar este post Link para o post Compartilhar em outros sites
scorpio 7 Denunciar post Postado Julho 17, 2009 Achei um jeito melhor de fazer Windows.Forms.TextRenderer.DrawText(e.Graphics, TEXTO, FONTE, SYSTEM.DRAWING.RECTANGLE, COR, Windows.Forms.TextFormatFlags.WordBreak _ Or Windows.Forms.TextFormatFlags.EndEllipsis _ Or Windows.Forms.TextFormatFlags.TextBoxControl) Assim ficou show de bola!!!! Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Julho 17, 2009 Valeu por contribuir scorpio. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites