| |
![zurück](../images/b_zurueck.gif)
VB.NET - Ein- und UmsteigerDynamische Textboxen - Width anhand des Textes einstellen - funktioniert nicht? | | ![](../images/trans.gif) | Autor: jasmina | Datum: 28.07.10 10:49 |
| Hallo,
arbeite mit VB2008.
Ich erzeuge Dynamische Textboxen; Textbox Name: (txLay)+ laufendeNr.(fiTX).
Das Parent (TXLayoutS1) ist ein Panel.
Die Textboxen inklusive den Addhandler usw. kann ich ohne weiteres erzeugen.
Die Position Top / Left sind ok.
Kann diese per Maus verschieben und vergrößern und verkleinern.
Problem ist, ich möchte jede Textbox auf eine andere Länge, die ich aus der Datenbank entnehme, abhängig von der Schriftart befüllen.
Die Textbox wird vorher auf .AutoSize = True gesetzt - und eine StringVariable mit der Anzahl der Zeichen dem .Text zugewiesen.
Nun versuche ich die .Width der Textbox abzufragen, aber diese hat immer einen festen Wert.
Obwohl ich diesen noch gar nicht eingestellt habe.
Setzt ich vorher einen festen Wert, wird dieser durch die beschriebe Aktion nicht überschrieben.
Woran liegt es?
Dim txLay() As TextBox
Dim fiTX As Integer 'Lfd.Nummer der Dynamischen Labelfelder Private Sub Layout_Feld_erzeugen()
ReDim Preserve txLay(fiTX) 'Array erweitern
txLay(fiTX) = New TextBox 'Neues Label erzeugen
'Den erzeugten Button verwenden:
With txLay(fiTX)
.Parent = TXLayoutS1 'Parent festlegen
.Parent.Controls.Add(txLay(fiTX)) 'Control Collection erweitern
'Verwaltungsinformationen zuweisen:
.Name = "txLay" & fiTX.ToString
.TabIndex = fiTX
.Tag = fiTX
.AutoSize = True
'Holen der Breite des Feldes aus der Datenbank
Dim Anz As Integer = modData.ppr_DataTable_Laenge_vk(fiTX)
Dim TE As String
Dim ch As Char = "m"c
'String ist je nach Anzahl unterschiedlich lang =>
TE = TE & TE.PadRight(Anz, ch)
Dim Breite As Integer = .Width 'Abfragen der Breite der Textbox
.Text = TE 'Zuweisen des Textes an die
' TextBox
[u] ' ==> trozdem ist immer die gleiche .Width angegeben - anhand des
' Textes ändert sich die
' Weite der Textbox nicht!!!
Breite = .Width 'Abfragen der Breite der Textbox
'Positionierung des Labels
Dim MousePos As Point
MousePos = TXLayoutS1.PointToClient(Windows.Forms.Cursor.Position)
.Left = TXLayoutS1.PointToClient(Windows.Forms.Cursor.Position).X
.Top = TXLayoutS1.PointToClient(Windows.Forms.Cursor.Position).Y
.Visible = True
.BorderStyle = BorderStyle.Fixed3D
'Ereignisse des Labels
AddHandler .Click, AddressOf txLay_Click
AddHandler .Enter, AddressOf txLay_Enter
AddHandler .Leave, AddressOf txLay_Leave
AddHandler .PreviewKeyDown, AddressOf txLay_PreviewKeyDown
'ADDHANDLER zum Verschieben des Steuerelements (
' MouseMove/MouseDOWN/MouseUP)
AddHandler .MouseMove, AddressOf txLay_MouseMove
AddHandler .MouseDown, AddressOf txLay_MouseDown
AddHandler .MouseUp, AddressOf txLay_MouseUp
End With
End Sub Bitte um Hilfe!
Warum kann ich die z.B die Weite an Hand des Textes verstellen, obwohl ich .AutoSize = True angeben.
oder wie kann ich sonst abhängig von der Schriftart, die Weite der Textbox regulieren?
Danke | ![](../images/trans.gif) |
![](../images/48x48/info.gif) | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
![nach oben](../images/b_top.gif) ![zurück](../images/b_zurueck.gif) |
|
Neu! sevPopUp 2.0 ![sevPopUp für VB/VBA und VB.NET](../images/werbung/sevpopup_100x100.jpg)
Dynamische Kontextmenüs!
Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... Weitere InfosTipp des Monats Access-Tools Vol.1 ![Access-Tools CD Vol.1](../images/werbung/apvol1_68x100.gif)
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|