Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Vb08 Textlänge in Label begrenzen

Frage Entwicklung VB for Applications

Mitglied: erik87

erik87 (Level 1) - Jetzt verbinden

19.02.2011 um 13:05 Uhr, 4124 Aufrufe, 2 Kommentare

Hallo Forumgemeinde,


ich habe ein kleines Problem, bei der mir keine einfache Lösung einfällt.

Ich habe mir ein Benutzersteuerelement erstellt, welches ein Label und Pictureboxen zur Anzeige enthält. Diese erstelle ich automatisch zu Laufzeit in einem Panel. Nun ist es möglich die Größe des Panels zu ändern. Momentan funktioniert das so, dass sobald das Steuerelement größer als das Panel ist, eine Scrollbar erscheint und der Nutzer sich das dann durch scrollen alles anschauen kann.

Ich würde aber gerne das Steuerelemet bis zu einer bestimmten Minimalgröße mit "schrumpfen" lassen (nur in der Breite, meistens ist der Text im LAbel nur 10 Zeichen breit, gelegentlich um einiges mehr). Aus anderen Programmen kenne ich es, das der Text dann abgeschnitten und ein "[...]" eingefügt wird. Die Größenänderung ist für mich kein Problem, nur das Text abschneiden. Da ja nicht jeder Buchstabe gleich breit ist, kann man das weder schön rechnen, noch statisch von einer bestimmten Anzahl ausgehen, da das echt S** aussieht.

Gibt es eventuell eine fertige Funktion für dieses Problem? Oder muss ich mir jetzt zu jedem Buchstaben die Breite raussuchen und das ganze durchrechnen lassen das es immer Gleich abschneidet. Die Steuerelemente werden übrigens untereinander erstellt und fungieren quasi als einspaltige tabellarische Übersicht.


Mit freundlichsten Grüßen
Mitglied: bastla
19.02.2011 um 13:47 Uhr
Hallo erik87!

Den Vorschlag, eine nicht-proportionale Schrift zu verwenden, spare ich mir gleich mal ...

Eine passende Funktion kenne ich leider auch nicht, aber als Workaraound fiele mir ein, in einem unsichtbaren weiteren Label (im Beispiel "Dummy") per Schleife solange verschiedene String-Längen zu testen, bis die (automatische) Breite ("Width") den Vorgabewert überschreitet - also etwa:
01.
Dim DerText As String = InputBox("Text eingeben!") 
02.
Dim Breite As Integer = 80, i As Integer, ZeichenAnzahl As Integer 
03.
ZeichenAnzahl = 1 
04.
For i = Len(DerText) To 1 Step -1 
05.
    Dummy.Text = Mid(DerText, 1, i) 
06.
    If Dummy.Width <= Breite Then 
07.
        ZeichenAnzahl = i 
08.
        Exit For 
09.
    End If 
10.
Next 
11.
Label1.Text = Mid(DerText, 1, ZeichenAnzahl) & IIf(ZeichenAnzahl < Len(DerText), "...", "")
Die Länge von "..." müsste bei der Vorgabe von "Breite" entsprechend einkalkuliert werden.

Grüße
bastla
Bitte warten ..
Mitglied: erik87
19.02.2011 um 13:59 Uhr
Hallo Bastla,

sowas in der Art is mir vorhin auch eingefallen, nur das ich nen extra Label mit "[...]" erstellen würde, damit dieses dann wirklich immer genau untereinander ist. Außerdem würde ich in diesem Fall mit den Eigenschaften Maximumsize arbeiten... Ich denke das wird auch die beste Option sein.

Ich dachte das es vllt. dafür ne fertige Eigenschaft gibt ;)

Danke!
Bitte warten ..
Ähnliche Inhalte
Exchange Server
Exchange 2010 Konto Maximale Odner Anzahl in Outlook begrenzen (4)

Frage von giesalv zum Thema Exchange Server ...

LAN, WAN, Wireless
A1 - Huawei HA35-22 Router einzelne Clients Bandbreite begrenzen

Frage von grillinator95 zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
WLAN zeitlich begrenzen (12)

Frage von Markowitsch zum Thema LAN, WAN, Wireless ...

Windows 10
Windows 10: Bandbreite bei Updates begrenzen (3)

Link von AnkhMorpork zum Thema Windows 10 ...

Neue Wissensbeiträge
Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(5)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(5)

Anleitung von BassFishFox zum Thema Windows 10 ...

Administrator.de Feedback

Tipp: Ungelöste Fragen ohne Antwort in Tickeransicht farblich hinterlegen

Tipp von pattern zum Thema Administrator.de Feedback ...

Viren und Trojaner

Neue Magazin Ausgabe: Malware und Angriffe abwehren

Information von Frank zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Windows Systemdateien
Warum System auf "C:" (29)

Frage von DzumoPRO zum Thema Windows Systemdateien ...

LAN, WAN, Wireless
Cisco SG200: Auf bestimmtem vLAN bestimmte TCP-Ports sperren (19)

Frage von SarekHL zum Thema LAN, WAN, Wireless ...

Windows Server
gelöst Update BackupExec 2015 auf 2016 führt zu SQL-Server Problem (16)

Frage von montylein1981 zum Thema Windows Server ...

Batch & Shell
gelöst Batch um Benutzer aus Sitzung abzumelden (15)

Frage von zeroblue2005 zum Thema Batch & Shell ...