| This small and very simple sub will format the caption of a Label control if the text is too big to display in the control. The sub will trucate the text and append "..." to the end of the text (indicating to the user that they are not seeing the full text). VB automatically wordwraps the caption of a label if it is too big, however, this results in the caption being truncated only where there is a space. Also, you can see the top of the next line of the caption. Example Make and Model: Cadillac becomes: Make and Model: Cadillac Eldor... I find this extremely useful when I don't know the maximum length of the text the label will contain, or If I don't have enough screen real estate To make the Label big enough. Just pass a label To this Sub For formatting. Private Sub AutoSizeCaption(lbl As Label) Dim iAs Integer Dim iLabelWidth As Integer Dim sTextAs String Const kMore = "..." ' store orignal caption and width sText = lbl.Caption ' numeric or date? Don't format. If IsNumeric(lbl.Caption) Or IsDate(lbl.Caption) Then Exit Sub iLabelWidth = lbl.Width ' allow label to "spring" to it's actual width lbl.AutoSize = True ' is required width of label < actual width? If lbl.Width > iLabelWidth Then i = Len(sText) - 1 Do lbl.Caption = Left(sText, i) & kMore i = i - 1 Loop Until (lbl.Width <= iLabelWidth) Or (i = 0) End If Exit_Sub: lbl.AutoSize = False lbl.Width = iLabelWidth Exit Sub ErrorHandler: ' something went wrong ... put everything back lbl.Caption = sText Resume Exit_Sub End Sub |
Autosize a Label Caption |
Express News India | Freelance ecommerce web development India