2 labels autosize=true nebeneinander

Hallo,
ich versuche in VB 6.0 zwei labels die aus einer Datei mit Text gefüllt werden direkt nebeneinander auf der Form zu plazieren.
Beide Labels haben die Eigenschaft Autosize=true.
Die Füllung mit Text und Plazierung wird während der Laufzeit unmittelbar vor Anzeigen des Forms erst festgelegt.

Ich habe Versucht die Größe des Labels1 mit label1.width herauszubekommen, es wird aber genau die Breite des Labels ausgegeben, die der Inhalt der Caption im Programmiermodus(Properties) hat.

Wer hat hier eine Idee, wie ich das Problem lösen kann?

Vielen Dank.

Grüße,
Christian

Hallo,

Hi Christian,
also bei mir funktioniert es.
offenbare mal bitte etwas Quellcode.

Gruß.Timo

Hallo Christian,

ich kann das auch nicht nachvollziehen, klappt problemlos.

Private Sub Command1\_Click()
 Label1.Caption = "testtext1234567890"
 Label2.Caption = "testtext1234567890"
 Label2.Left = Label1.Left + Label1.Width
End Sub

Gruß, Rainer

Hallo Timo,

ist nicht so wirklich viel code.

Properties der betreffenden Labels in der Form „Region“:
(Name)=Label1
Autosize=false
Caption=label1
Enabled=true
Visible=true
Width=1790,702
WordWrap=false
–>gleiches gilt auch für Label2

Code in der Form die das Form „Region“ mit den beiden Labels aufruft:
Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, _
X As Single, Y As Single)
Region.Label1 = REG_NW_PERS
Region.Label2 = REG_NW_TEL
Region.Show
End Sub

Code in der Form „Region“ der besagten Labels:
Private Sub Form_Load()
Label1.AutoSize = True
Label2.AutoSize = True
Label1.top = 255
Label1.left = 75
Label2.top = 255
Label2.left = Label1.Width + 75
Me.left = MainMenu.left - MainMenu.Width
Me.top = MainMenu.top
End Sub

Ist also recht übersichtlich, doch die einzige Funktion die falsch ausgeführt wird ist „Label2.left = Label1.Width + 75“.
Als Breite von Label1 wird genau die Breite erkannt, die das label beim Start hat („Label1“).

Grüße,
Christian

Hallo Christian,

Code in der Form „Region“ der besagten Labels:
Private Sub Form_Load()
Label1.AutoSize = True
Label2.AutoSize = True
Label1.top = 255
Label1.left = 75
Label2.top = 255
Label2.left = Label1.Width + 75
Me.left = MainMenu.left - MainMenu.Width
Me.top = MainMenu.top
End Sub

Ist also recht übersichtlich, doch die einzige Funktion die
falsch ausgeführt wird ist „Label2.left = Label1.Width + 75“.
Als Breite von Label1 wird genau die Breite erkannt, die das
label beim Start hat („Label1“).

Autosize bedeutet, dass sich das Label der Grösse des darin enthaltenen Textes anpasst.
Was ist denn da für Text enthalten ?? (Normalerweise steht da meist „Text1“ oder sowas, aus der Programmierumgebung, drin).

MfG Peter(TOO)

Hallo Christian,
[…]
Was ist denn da für Text enthalten ?? (Normalerweise steht da
meist „Text1“ oder sowas, aus der Programmierumgebung, drin).

MfG Peter(TOO)

Hallo Peter,
ich lasse aus einer Textdatei Zeilen auslesen und füge mehrere verscheidene Teile davon zu einem String zusammen, der auch Zeilenumbrüche enthält.
Da der Inhalt der Textdatei verscheiden ist, soll das Label entsprechend der aktuellen Textgröße angepasst werden, dies klappt auch wunderbar. Nur kann ich die Größe dieses Labels nicht mehr abrufen.
Ich habe auch Label anstatt Textbox gewählt wegen Autosize und weil dort nur ein Text ausgegeben werden soll, nicht bearbeitet oder sonst was.

Grüße,
Christian

Hallo Timo,

Hi nochmal,
das Event Form_Load der Form „Region“ wird aufgerufen, sobald auf ein Steuerelement daraus zugegriffen wird.

Private Sub Image1_MouseDown(Button As Integer, Shift As
Integer, _
X As Single, Y As Single)

D.h. bereits hier wird die Form_Load-Sub aufgerufen.
Der neue Text wurde noch nicht in das Label1 eingetragen.
Rufe daher besser die folgenden 2 Zeilen in der Sub „Form_Load“ des Forms Region auf.

Region.Label1 = REG_NW_PERS
Region.Label2 = REG_NW_TEL
Region.Show
End Sub

Code in der Form „Region“ der besagten Labels:
Private Sub Form_Load()
Label1.AutoSize = True
Label2.AutoSize = True
Label1.top = 255
Label1.left = 75
Label2.top = 255
Label2.left = Label1.Width + 75
Me.left = MainMenu.left - MainMenu.Width
Me.top = MainMenu.top
End Sub

Gruß.Timo