Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Programmiereffizienz bei dynamischer TextBox Konstruktion
#1
Hallo liebe Leute,

ich habe ein Problem bezüglich der Programmiereffizienz bei der Erstellung von dynamischen Textboxen.

Hier mal zunächst mein Code:

Code:
Sub UserForm_Initialize()
TextBoxen_Konstruktion Me
End Sub

Im Modul:

Dim TextBoxContr(5) As New clsControl

Sub TextBoxen_Konstruktion(Ufk As UserForm)

Dim objTextBox As MSForms.TextBox
'1. TextBox
Set objTextBox = Ufk.Controls.Add("Forms.TextBox.1", "TextBox" & 10, True)

With objTextBox
.MultiLine = True
.Left = 0
.Top = 0
.Height = 50
.Width = Application.Width - 8
.Visible = True
.Font.Size = 12
.Font.Bold = True
.Font.Name = "Courier New"
End With
Set TextBoxContr(1).TextBoxCmd = objTextBox

'2. TextBox konstruieren
Set objTextBox = Ufk.Controls.Add("Forms.TextBox.1", "TextBox" & 20, True)

'objTextBox hat alle Eigenschaften wie vorher, bis auf die Eigenschaft
'Top, Wie geht's rationeller?

With objTextBox
.MultiLine = True
.Left = 0
.Top = TextBoxContr(1).TextBoxCmd.Height + 10
.Height = 50
.Width = Application.Width - 8
.Visible = True
.Font.Size = 12
.Font.Bold = True
.Font.Name = "Courier New"
End With

Set TextBoxContr(2).TextBoxCmd = objTextBox

End Sub

In der Klasse:
Public WithEvents TextBoxCmd As MSForms.TextBox





Wie ihr sehen könnt, werden 2 untereinanderstehende Textboxen dynamisch konstruiert.

Meine Frage, wenn ich meine zweite Textbox, also TextBox20 konstruiere, mache  ich das ja
wieder mit dem Objekt objTextBox, mit dem ich schon vorher die TextBox10 konstruiert habe.

Da die zweite TextBox unter der ersten liegen soll sind bis auf die Eigenschaft Top  alle anderen
Eigenschaften von objTextBox gleich.

Wie kann ich so etwas rationaler gestalten?
Antworten Top
#2
(10.04.2018, 15:15)Algor schrieb: Wie kann ich so etwas rationaler gestalten?

Moin!
Indem Du auf ein Userform verzichtest und ein Tabellenblatt mit (wie heißen die nochmal, ach ja) Zellen nimmst?

Fragt sich durchaus ernsthaft gemeint Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#3
Rationaler:

Design Mode aktivieren

Textboxen kreieren.
Eigenschaft .Visible=false

Design Mode verlassen.

Dynamische Code:


Code:
Sub M_snb()
   for each it in sheet1.OleObjects
     it.visible=true
   next
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • Algor
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste