Formular beim wechseln ausblenden

03/09/2009 - 10:45 von Ralf Dorn | Report spam
Hallo alle zusammen,

ich habe mal wieder ein für euch simples Problem mit dem ich mich hier
herumàrgere.

Ich will mein Hauptmenue ausblenden wenn der User auf einen Button klickt.

Bei VB6 habe ich einfach beim Klick Ereignis hauptmenue.hide und Form2.show
eingegeben um auf die Form2 zu wechseln.

In VB2008 scheint das nicht so zu funktionieren. Ich habe dann mit me.hide
und form2.show das Problem gelöst. Dachte ichmindestens. Nur wenn ich jetzt
in der Form2 auf ein DateTimePicker klicke, wird mir zusàtzlich das
hauptmenue wieder angezeigt. Bei allen anderen Felder (Textboxen) kommt es
nicht vor.

Wie wechsle ich richtig zwischen den Fenstern hin und her?

Gruß

Ralf Dorn
 

Lesen sie die antworten

#1 Peter Götz
03/09/2009 - 12:04 | Warnen spam
Hallo Ralf,

Ich will mein Hauptmenue ausblenden wenn der User auf einen
Button klickt.

Bei VB6 habe ich einfach beim Klick Ereignis hauptmenue.hide
und Form2.show eingegeben um auf die Form2 zu wechseln.

In VB2008 scheint das nicht so zu funktionieren. Ich habe dann
mit me.hide und form2.show das Problem gelöst. Dachte ich
mindestens.
Nur wenn ich jetzt in der Form2 auf ein DateTimePicker
klicke, wird mir zusàtzlich das hauptmenue wieder angezeigt.
Bei allen anderen Felder (Textboxen) kommt es
nicht vor.




Du hast 2 Forms (Form1 und Form2)?
Auf Form1 befindet sich Dein Hauptmenü?
Auf Form2 befindet sich Dein DateTimePicker?

Habe ich das soweit richtig verstanden?

Wie wechsle ich richtig zwischen den Fenstern hin und her?



Soll beim Wechsel zwischen den beiden Fenstern das
jeweils andere Fenster unsichtbar werden?
Oder soll beim Wechsel von Form1 zu Form2 lediglich
Form1 für Benutzereingaben gesperrt werden und Form2
modal sichtbar und bedienbar werden?

Hier ein Beispiel, bei dem die Form1 sichtbar bleibt, aber für
Benutzereingaben gesperrt ist, solange die Form2 geöffnet ist.

Erstelle ein neues Projekt mit zwei leeren Forms (Form1.vb
und Form2.vb)

' /// Code in Form1.vb
Public Class Form1
Private WithEvents MStrip As MenuStrip
Private WithEvents miFile As ToolStripMenuItem
Private WithEvents miForm2Open As ToolStripMenuItem
Private Sep1 As ToolStripSeparator
Private WithEvents miQuit As ToolStripMenuItem


Private Sub Form1_Load _
(ByVal sender As System.Object, _
ByVal e As System.EventArgs _
) Handles MyBase.Load

CreateMenus()

End Sub

Private Sub CreateMenus()
MStrip = New MenuStrip
With MStrip
.Dock = DockStyle.Top
miFile = New ToolStripMenuItem("Datei")
MStrip.Items.Add(miFile)
End With

With miFile
miForm2Open = _
New ToolStripMenuItem("Form2 öffenen")

Sep1 = New ToolStripSeparator
miQuit = New ToolStripMenuItem("Beenden")

.DropDownItems.Add(miForm2Open)
.DropDownItems.Add(Sep1)
.DropDownItems.Add(miQuit)

End With

Me.Controls.Add(MStrip)

End Sub

Private Sub miForm2Open_Click _
(ByVal sender As Object, _
ByVal e As System.EventArgs _
) Handles miForm2Open.Click

Form2.ShowDialog()
End Sub

Private Sub miQuit_Click _
(ByVal sender As Object, _
ByVal e As System.EventArgs _
) Handles miQuit.Click

Me.Close()
End Sub
End Class
' \\\ ______________________

' /// Code in Form2.vb
Public Class Form2
Private WithEvents DTP As DateTimePicker

Private Sub Form2_Load _
(ByVal sender As System.Object, _
ByVal e As System.EventArgs _
) Handles MyBase.Load

DTP = New DateTimePicker
With DTP
.Dock = DockStyle.Top
.Font = New Font("Arial", 10)

End With
Me.Controls.Add(DTP)
End Sub

Private Sub DTP_ValueChanged _
(ByVal sender As Object, _
ByVal e As System.EventArgs _
) Handles DTP.ValueChanged

MsgBox _
(DTP.Value.ToLongDateString, _
MsgBoxStyle.Information)
End Sub
End Class
' \\\ E _ N _ T _ E

Programm starten, Menü "Datei" öffnen und "Form2 öffnen"
auswàhlen.
Form2 wird sichtbar, Form1 bleibt sichtbar, wird aber für
Benutzereingaben so lange gesperrt, bis die Form2 wieder
geschlossen wird.


Wenn die Form1 nach dem Öffnen der Form2 unsichtbar
werden soll, dann àndere den Code in Form1
Sub miForm2Open_Click so ab:

Private Sub miForm2Open_Click _
(ByVal sender As Object, _
ByVal e As System.EventArgs _
) Handles miForm2Open.Click

Me.Hide()
Form2.ShowDialog()
Me.Visible = True
End Sub

Damit wird die Form1 nach dem Öffnen der Form2
unsichtbar und erst wieder sichtbar, wenn die Form2
geschlossen worden ist.


Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen)

Ähnliche fragen