MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Visual Studio /.NET > Visual Studio .NET (alle Produkte: C#, VB.NET etc.)
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 26.03.2009, 20:08   #1
sa |\| dro
Neuer Benutzer
Neuer Benutzer
Standard Frage - (VB9) Neu erstelltes Element verwenden

Hallo,

Ich arbeite gerade an einem Programm, dort soll während der Laufzeit per Klick eine neue TabPage erstellt werden und in jeder TabPage eine Textbox.
Ich habe es geschafft, die TabPage zu erstellen und auch die Textbox reinzutun.
Die TabPage heisst dann "Tab" + eine Nummer
Also die erste TabPage heisst Tab1, dann Tab2,...
Die Textbox heisst Tab1Box, Tab2Box und so weiter...

Die Textbox füge ich so ein:

Dim Textfeld As New Textbox
Textfeld.Name = NewPage.Name + Dokumentzahl 'Hier wird der Name erstellt
Textfeld.Multiline = True
Textfeld.Dock = DockStyle.Fill
Textfeld.ScrollBars = ScrollBars.Both
TabControl1.TabPages("Tab" & Dokumentzahl).Controls.Add(Textfeld)

Dokumentzahl wird immer zuerst um 1 erhöht, und am Anfang steht
Dim Dokumentzahl As Integer = 0

Wie kann ich jetzt aber machen, dass wenn man auf Button2 klickt, z.B. der Text von Tab3Box geändert wird?
Ich kann ja nicht schreiben:
Textfeld.Text = "Irgendwas"
weil Textfeld gar nicht existiert,

Tab3Box.Text = "Irgendwas"

geht ja aber auch nicht, weil die Textbox ja eigentlich auch nicht existiert, also beim schreiben des Code meine ich...

Ich hoffe, ihr könnt mir helfen...

Gruss sa |\| dro

__________________

(^_^) |-| /-\ |_ |_ () (^_^)
sa |\| dro ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 26.03.2009, 23:36   #2
Robert_Zenz
Standard

Moin.

Ich hab zwar den letzten Absatz kein bißchen verstanden, aber ich glaube du willst einfach nur wissen dass die COntrols-Collection in beide Ricthungen funktioniert:
Code:

My.Control.Controls.Add(newControl) 'hinzufügen
My.Control.Controls(0) 'erstes Control aus der Liste holen
My.Control.Controls("MyControl") 'Control mit dem Namen "MyControl" aus der Lsite holen
Rob
 
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 27.03.2009, 08:07   #3
hcscherzer
MOF Guru
MOF Guru
Standard

Ich empfehle, die zur Laufzeit erzeugten Controls nicht nur 'einfach' durchlaufend zu benennen sondern in Arrays zu verwalten.
In selbst zugewiesenen Ereignis-Handlern kannst Du dann über den Index ermitteln, welches Control der Sender war ...
Hier und auch hier hatten wir dieses Thema gerade ausführlich behandelt.

__________________

Freundlichen Gruß
Hans-Christian
-----------------------------------------
Oft erwünscht, selten beachtet: nach Erledigung des Problems den Thread als erledigt zu markieren
-----------------------------------------
Ich möchte nur Mitglied in einem Verein sein, der Leute wie mich nicht als Mitglied aufnimmt (Groucho Marx).
-----------------------------------------
Ab sofort regelmässig: MOF Stammtisch in Bremen. Näheres hier.
hcscherzer ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 27.03.2009, 16:15   #4
$a |\| dro
Standard

Danke, ich schaue die beiden Links mal aus,

den Code probier ich dann auch mal aus, wenn ich zu Hause bin$

Danke und Gruss
sa |\| dro
 
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 27.03.2009, 17:39   #5
$a |\| dro
Standard

Hallo,

also ich habe jetzt den Code mal ausprobiert...
Es funktioniert leider nicht...

Also wenn ich eine Textbox (oder was auch immer) erstellt habe, kann ich diesem Element ja gleich Eigenschaften zuweisen, z.B. NewTextbox.Mulitline = True

Wenn ich aber erst später eine Eigenschaft hinzufügen will, also z.B. mit Button1 (beim Klicken) wird die Textbox erstellt und mit Button2 soll z.B. die Eigenschaft Multiline auf False gestellt werden.
Beim Button2_Click() muss ich also zuerst die Textbox definieren, weil ich ja nicht schreiben kann:

Tab3Box.Multiline = True

Weil Tab3Box wird ja erst während der Laufzeit erstellt und existiert am Anfang nicht.
 
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 27.03.2009, 17:48   #6
$a |\| dro
Standard

Ich habe mir nun die mal die Links angeschaut...

Ich habe mal den Code übernommen und nun kann ich Labels (oder auch Textboxen) hinzufügen...
Aber wie kann ich sie nun später verwenden?
Also andere Eigenschaften zuweisen,...

Gruss sa |\| dro
 
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 28.03.2009, 10:04   #7
hcscherzer
MOF Guru
MOF Guru
Standard

Zitat:

Aber wie kann ich sie nun später verwenden?

Wo ist das Problem? Wenn Du sie in einem globalen Array verwaltest: indem Du Dich auf ihre Eigenaschaften, Methoden etc. beziehst ...
Code:

sub ereignisprozedur(byval sender as object, byval e as system.evantargs)
 for i as integer = 0 to ubound(lb)
  if lb(i) is sender then
   ' hier kommt die action
   ' zum Bleistift
    lb(i).text = "neuer Text"
    lb(i).top += 10 ' etwas tiefer legen 
   ' usw.
   exit for
  end if
 next
end sub

__________________

Freundlichen Gruß
Hans-Christian
-----------------------------------------
Oft erwünscht, selten beachtet: nach Erledigung des Problems den Thread als erledigt zu markieren
-----------------------------------------
Ich möchte nur Mitglied in einem Verein sein, der Leute wie mich nicht als Mitglied aufnimmt (Groucho Marx).
-----------------------------------------
Ab sofort regelmässig: MOF Stammtisch in Bremen. Näheres hier.
hcscherzer ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 28.03.2009, 12:02   #8
$a |\| dro
Standard

Mein Problem ist, dass ich Anfänger bin und noch nie irgendwas mit Array programmiert habe,

ich habe gerade eben die Lösung "bekommen" => ohne Arrays...

Dim myTextBox As TextBox = DirectCast(TabControl1.Controls("Tab1").Controls("Tab1Box"), TextBox)

Gruss $andiro
 
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:50 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.