vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Inhalt einer Form ändern 
Autor: xater
Datum: 13.07.11 14:30

Hallo zusammen,

nehmen wir mal an ich habe eine Form und habe oben einen Button auf dem "erfassen" steht. In der Grundform bekomme ich eine Liste angezeigt. Sobald ich auf den Button drücke, komm ich in eine Eingabemaske auf der selben Form, ohne dass eine neue aufgeht und die Liste verschwindet. Sobald ich die Daten eingegeben habe und speicher, kommt wieder die Liste und die Eingabemaske verschwindet. So viel zum Thema wie es funktionieren soll.

Wie würdet ihr das lösen ? Am liebste wäre es mir, wenn das ganze nicht iwie mit hide verschwindet, sondern dass es mit in Form A den Inhalt aus z.B. Form B lädt. Wisst ihr was ich mein ?

Entwicklung: VB 2010 Ultimate
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Inhalt einer Form ändern 
Autor: Plumber44
Datum: 13.07.11 15:10

Hey,
das kannst du doch mit GroupBoxen handeln.
Indem du die jeweilige GroupBox die aktiv sein soll Visible=true,
und alle anderen Visible=False setzt.

Wäre ein Vorschlag von mir.

LG
Plumber44

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Inhalt einer Form ändern 
Autor: xater
Datum: 13.07.11 15:15

Danke, das ist eine tolle Idee, jedoch nicht das was ich mir vorgestellt habe... Im Prinzip möchte ich in einer Form, nennen wir sie mal FORM A eine andere Form, nennen wir sie FORM B laden, ohne dass diese aufgerufen wird. Im Prinzip soll die "Hauptform" nur eine art Hülle sein, welche die Inhalte der verschiedenen Forms lädt... Ich hoffe ich konnte dies nun verständlich genug erklären...?!
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Inhalt einer Form ändern 
Autor: Manfred X
Datum: 13.07.11 15:48

Hallo!

Was versprichst Du Dir davon?
Wieso willst Du nicht einfach eine Instanz von "FormB"
laden und anzeigen?

Du könntest statt der Forms UserControls erstellen
auf eine Form setzen und sie jeweils sichtbar/unsichtbar
schalten.

MfG
Manfred
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Inhalt einer Form ändern 
Autor: xater
Datum: 13.07.11 16:19

Ich denke einfach, dass das am Ende leichter ist vom Updaten, wenn an einer Form mal was geändert wird.. Oder nicht ?!
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Inhalt einer Form ändern 
Autor: Manfred X
Datum: 13.07.11 16:55

Hallo!

Nein!
Wen Du an einer Form Änderungen vornimmst, mußt Du dafür sorgen,
dass das Zusammenwirken dieser Form mit den anderen Formen
(z.B. Datenaustausch) auch weiterhin korrekt funktioniert.

MfG
Manfred
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Inhalt einer Form ändern 
Autor: VB.nett
Datum: 13.07.11 21:04

Hallo,

du könntest die zweite Form mit BorderStyle=none versehen und sie dann in der ersten Form mit Dock=Fill anzeigen.

Eine andere Möglichkeit wäre, das ganze als MDI-Projekt zu erstellen.

Gruß,

VB.nett
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Inhalt einer Form ändern 
Autor: Maas
Datum: 13.07.11 21:07

Genau dafür gibt es UserControls, wie Manfred schon sagte.
Eine Form ist mehr oder weniger auch nur ein UC, bloß dass es einen Windows-Rahmen hat.

Maas
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Inhalt einer Form ändern 
Autor: xater
Datum: 13.07.11 21:33

Könnt ihr mir mal erklären was ein UserControl genau ist bzw was man damit machen kann ? In der Arbeit programmiere ich leider nur Websprachen und muss aber jetzt mal ausnahmsweise was in VB machen. Ich habe dazu nur das gefunden: http://msdn.microsoft.com/de-de/library/system.windows.forms.usercontrol(VS.80).aspx Woraus ich aber leider noch nicht so ganz schlau werde. Ein kurzes Statement von jemand würde mir da vermutlich schon helfen... Wäre auch cool wenn mir jemand sagt wie ich sowas erstelle.. xD
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Inhalt einer Form ändern 
Autor: xater
Datum: 13.07.11 21:39

Also ich habe jetzt rausgefunden wie ich sowas erstell, aber wie kann ich das in einer Form laden ?!
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Inhalt einer Form ändern 
Autor: Manfred X
Datum: 13.07.11 21:49

Hallo!

Ein UserControl wird verwendet wie ein Windows.Forms.Control.

Dim (withevents) myUserControl as New TheUserControl.
Setzen der Parent-Eigenschaft ordnet es der Form zu.

Oder das Projekt nach dem Erstellen des UC zunächst übersetzen
und dann den Designer verwenden (UC findet sich in der Toolbox).

MfG
Manfred
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Inhalt einer Form ändern 
Autor: xater
Datum: 13.07.11 22:19

*Thumbs Up* Dank dir... UserControls sind in meinem VB Buch leider nicht drin. ISBN 978-3-8362-1541-1 Hat ja jetzt geklappt... ;)
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Inhalt einer Form ändern 
Autor: xater
Datum: 14.07.11 09:11

Leute, ich hab grad gemerkt, dass das: Dim (withevents) myUserControl as New TheUserControl. bei mir nicht funktioniert... Kommt das noch vor Public Class XXXX ? Und was muss ich an der Textstelle evtl. noch ändern ?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Inhalt einer Form ändern 
Autor: Manfred X
Datum: 14.07.11 09:44

Hallo!

Hier ein kleines Beispiel:

Ein Usercontrol, das einen Button enthält, der beim
Click die Farbe wechselt und ein Ereignis auslöst.
Public Class ucButton
    Inherits UserControl
 
    Private WithEvents ButtonColor As New Button _
    With {.Parent = Me, .BackColor = Color.White}
 
    Public Event buttonclick(ByVal sender As Object, e As EventArgs)
 
    Private Sub ButtonColor_Click(sender As Object, _
        e As System.EventArgs) Handles ButtonColor.Click
 
        With ButtonColor
            If .BackColor = Color.White Then
                .BackColor = Color.LightGray
            Else
                .BackColor = Color.White
            End If
        End With
 
        RaiseEvent buttonclick(ButtonColor, New EventArgs)
    End Sub
 
End Class
Verwendung in einer Form (Deklarationsteil, hinter Public Class):

Dim WithEvents cb As New ucButton With {.Parent = Me}

Ereignisverarbeitung:

Private Sub cb_buttonclick(sender As Object, _
e As System.EventArgs) Handles cb.buttonclick

'.......
End Sub

MfG
Manfred
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Inhalt einer Form ändern 
Autor: xater
Datum: 14.07.11 10:25

Coole Sache.. Das hab ich gleich mal getestet und es funktioniert auch einwandfrei. Jetzt ist aber die Frage, wie ich ein UC ausblenden kann und ein anderes anzeigen. Kann ich nach dem Public Class XXX schon eine If Bedingung machen um das Dim WithEvents cb As New ucButton With {.Parent = Me} ? Sry wenn ich da verständnisprobleme hab. Aber wer nicht fragt bleibt dumm... ;) Und ich möchte es ja lernen
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Inhalt einer Form ändern 
Autor: Manfred X
Datum: 14.07.11 11:34

Hallo!

Im Deklarationsteil kannst Du keinen Code ausführen.
Das geht nur in Functions/Properties/Subs.

Du kannst aber - wie bei jeder Klasse - zunächst das
New weglassen und im Deklarationsteil der Form nur
eine Zugriffsvariable erstellen:

Dim WithEvents cb As ucButton 'Zugriffsvariable

Irgendwo in einer Routine kannst Du dann eine Instanz erstellen
und zuweisen:

cb = New ucButton With {.Parent = Me, .top =100, .visible = true}

Instanzen können auch unsichtbar gemacht bzw. die Zugriffsvariable
kann wieder auf Nothing gesetzt werden. Falls es keine weitere
Referenz auf diese Instanz gibt, räumt der GarbageCollector sie
wieder weg.

MfG
Manfred

Beitrag wurde zuletzt am 14.07.11 um 11:39:48 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Inhalt einer Form ändern 
Autor: xater
Datum: 14.07.11 15:24

Sau stark... Super und vielen herzlichen Dank.. Klappt alles wunderbar !!
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

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