Visual Basic Label Text zentrieren?

... komplette Frage anzeigen

4 Antworten

Setz AuotSize auf false bei den Labels und setz die Breite gleich wie das Form. TextPosition dann MiddleCenter.

Noch besser als die Breite so festzulegen ist natürlich du setzt die Dock Eigenschaft damit sich die Labels mit dem Form verbreitern.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von PWolff
24.05.2016, 13:41

"Dock" beeinflusst andere Elemente ziemlich stark, meistens ist "Anchor" (Left,Top,Right) geeigneter.

0

Ich würde statt Labels Buttons nehmen, da sieht man sofort, dass man das anklicken kann.

Außerdem kann man die Buttons dann auch mit der Tastatur betätigen - Richtungspfeile und Leertaste/Zeilenschaltung, oder AntwortLabel(...).Text = ...

&a) Antwort 1
&b) Zweite Antwort
&c) Antwortalternative drei
&d) Viertens

und Alt+a, ..., Alt+d

Die Buttons bekommen die AutoSize-Eigenschaft auf True gesetzt, und die AutoSizeMode-Eigenschaft auf GrowAndShrink, oder die Anchor-Eigenschaft auf Top,Left,Right, und breit genug für die breiteste Frage gezogen (kann man auch programmgesteuert machen). Ggf. noch mit Mehrzeiligkeit und WordWrap spielen. (Funktioniert auch bei Labels)

Nach

Button.Text = ...
Button.Left = (Me.ClientSize.Width - Button.Width) \\ 2

oder auch

Button.Left = CInt((Me.ClientSize.Width - Button.Width) / 2)

("\\" steht für Integer-Division; nur der ganzzahlige Quotient wird zurückgeliefert und der Rest ausgelassen)

(Übrigens hat VB6 noch respektiert, wenn ein Label die Alignment-Eigenschaft auf "2 - Zentriert" gesetzt war)

Antwort bewerten Vielen Dank für Deine Bewertung

An deiner Stelle würde ich eher Textboxen benutzen, da diese sich nicht automatisch verschieben und du diese auch besser einstellen kannst. Du musst sie nur auf Readonly stellen

Antwort1.ReadOnly = True

Antwort2.ReadOnly = True

Antwort3.ReadOnly = True

Antwort4.ReadOnly = True

Statt Antwort1,Antwort2 etc musst du die Namen deiner Textboxen Eintragen Viel Glück noch bei deinem Quiz!

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von vb1337
24.05.2016, 11:40

Falls du noch Hilfe bei dem Zufälligen Antwort auswählen brauchst sags mir

0
Kommentar von EightSix
24.05.2016, 12:41

Was kann man an Textboxen besser konfigurieren? Man muss halt das AutoSize bei den Labels deaktivieren damit man sie in der Größe anpassen kann.

0

Soll denn der "Anwender" selber schreiben können oder dass der Text schon darin steht? 

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von leoquestiongoon
24.05.2016, 11:37

Ich habe einen Datenbank da stehen zum Beispiel Antwortmöglichkeiten und Fragen drin. Zum Beispiel einmal als Frage

"Wie heißt die Haupstadt Russland" und als Antworten "Moskau", "St. Petersburg" "Sochi" "Minsk". 

Und dann soll halt zum Beispiel diese Frage ins Label für die Frage rein, wichtig ist aber dass auch eine andere Frage dran muss. 

Ich hatte die Idee, dass man die Position des Labels festsetzt mit 

X Position = X PositionMittedesLabels - Breite des Labels / 2. 

Aber woher kennt er denn die Breite des Labels, wenn diese aufgrund des variablen Inhalts auch variable ist. 

0

Was möchtest Du wissen?