Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin

Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Texte und Ebooks
Autor
Nachricht
ZiG_
Überflieger
Überflieger

Anmeldedatum: 07.03.2007
Beiträge: 1248

[Text] PopupMenu für Anfänger
Verfasst am: 28.03.2007, 19:23

Thema: PopupMenu

Heute möchte ich euch zeigen wie man ein Popupmenu erstellt und damit umgeht.
Falls jemand nicht weiß was ein Popupmenu ist: Das ist das Kontextmenü wenn ihr mit der rechten Maustaste an irgendeine Stelle klickt.

1. Wozu braucht man ein PopupMenu?

Popmenüs können sehr praktisch sein, besonders für den User der euer Programm in Zukunft benutzen soll, da man viele Funktionen schnell zu Verfügung hat.
Besonders, wenn man sein Programm nur als TrayIcon anzeigen lässt ohne Form am Desktop, ist ein PopupMenu sehr hilfreich, da dem Benutzer über einen Klick auf das Trayicon die Möglichkeit gegeben wird, schnell und einfach zu entscheiden welche Funktion er ausführen möchte.
Also, Zusammengefasst sind PopupMenus eine Möglichkeit an jeder Stelle schnell an alle Funktionen ranzukommen und außerdem Platz sparend.

2. Menü anlegen

Wie legt man also ein Menü an?
Ihr drückt einfach mit der rechten Maustaste auf eure Form und wählt den Menü-Editor. Dann seht ihr erstmal dieses Fenster.



Unter Caption: könnt ihr einen Namen angeben, der in der Liste dann angezeigt wird.
Unter Name: müßt ihr einen Einzigartigen Namen angeben so wie ihr es für jeden Button, Form, Textbox usw. tut.

Mit den Pfeilbuttons könnt ihr die Einträge dann verschieben.
Davon sind die Buttons links und rechts interessant. Damit könnt ihr Menüs mit ihren Untermenüs erstellen.

Hier mal ein Beispiel.



So haben wir also einmal das Hauptmenü „Menu“ und dazu die Einträge in diesem Menü.

3. Rechte Maustaste abfragen

Hier müßt ihr erstmal entscheiden wo ihr das Menü anzeigen wollt.
Also, ob es in einer Textbox, Listbox oder vielleicht auf der Form sein soll.

Ich mach es einfach mal auf der Form als Beispiel.
Code:

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then
 Call PopupMenu(menu)
End If
End Sub


Button 2 ist also die rechte Maustaste. Ihr könnt natürlich auch die Linke Maustaste abfragen wenn ihr wollt.
Durch Call PopupMenu(menu) wird dann Euer Hauptmenü aufgerufen.

4. Extras

1. Trennlinien
Wie macht man diese Trennlinien zwischen bestimmten Menüeinträgen?
Ganz einfach.

Ich braucht natürlich ein Hauptmenü indem ihr einen Eintrag erstellen könnt.
Den neuen Eintrag müßt ihr auch einen Namen vergeben.
Schreibt einfach Linie1.
Unter Caption macht ihr einfach einen einzelnen Bindestrich.

Dieser wird euch dann als Trennlinie angezeigt.
So könnt ihr euer Menü also gruppieren.

2. Shortcuts
Wie ihr sicher schon gesehen habt, könnt ihr im Menü-Editor für jeden Eintrag
einen Shortcut bestimmen. Dabei solltet ihr natürlich darauf achten keinen
Shortcut doppelt zuzuweisen.

Aber ihr kennt auch sicher die Möglichkeit über Alt und dem
unterstrichenen Buchstaben.
Diese Möglichkeit kann man dem Benutzer auch ganz einfach bieten.
Schreibt einfach bei Caption vor den Buchstaben den ihr als Shortcut wollt
ein „&“.

Bsp.: &Datei Öffnen



3. Menü nicht sichtbar auf der Form

Falls ihr nicht wollt dass das Menü oben in der Form angezeigt wird,
müßt ihr nur bei den Eigenschaften des Hauptmenüs die Option visible
deaktivieren.
So wird das Menü nur über die rechte Maustaste aufgerufen und ist sonst nicht
sichtbar.

5. Ein Dynamisches Menü

Um ein Dynamischen Menü zu realisieren muss man einen Menüpunkt als Array anlegen.
Dieses Array können wir dann erweitern wie wir wollen, oder auch Einträge wieder rauslöschen.

Um ein Array anzulegen braucht ihr nur bei einem Eurer Einträge bei dem Punkt Index: eine Null hineinschreiben.
Den Eintrag mit dem Index 0 nenne ich jetzt einfach mal „List1_men“.

Um das Array zu erweitern brauchen wir jetzt diesen Code:
Code:

Load List1_men(1)
List1_men.Caption = “List2”


In der ersten Zeile legen wir einen weiteren Punkt im Array List an. Nämlich List(1).
In der zweiten Zeile übergeben wir diesem neuen Punkt einen Namen der dann angezeigt wird.

Wenn ihr wieder einen Eintrag entfernen wollt, braucht ihr diesen Code.
Code:

Unload List1_men(1)


Wenn ihr wissen wollt, wie groß das Array ist, bzw. wie viele Einträge ihr erstellt habt, schreibt ihr das.
Code:

List1_men.Count

Das ist natürlich für Schleifen sehr praktisch.

Außerdem könnt ihr auch Einträge deaktivieren, so dass sie nicht angeklickt werden können.
Code:

List1_men(1).Enabled = False



Wie erkennt man jetzt, welcher dieser Einträge angeklickt wurde?

Dadurch, dass wir aus List1 ein Array gemacht haben sieht der Code jetzt etwas anders aus.
Code:

Private Sub List1_men_Click(Index As Integer)
End Sub


Wie ihr seht wird uns jetzt ein Index übergeben, wenn der Benutzer auf einen Eintrag klickt.
Mit diesem Index könnt ihr dann auf den Eintrag zugreifen und abfragen was ihr benötigt.

Hier ein Beispiel:
Code:

Private Sub List1_men_Click(Index As Integer)
Select case Index
 Case 1
  Text1.Text  = List1_men.Caption
 Case 2
  Text2.Text  = List1_men.Caption
End select
End Sub


6. Häkchen vor einen Eintrag setzen

Häkchen setzen kann man einfach über
Code:

List1_men(1).Checked = True


Und deaktivieren natürlich über False.
So könnt ihr dem Benutzer zeigen welche Option gerade aktiv ist.


Das war es wieder mal.
Ich hoffe ihr könnt eure Programme um eine interessante Funktion erweitern und habt was gelernt.

Mit freundlichen Grüßen, ZiG
_________________
Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)


Zuletzt bearbeitet von ZiG_ am 15.11.2007, 22:19, insgesamt 2-mal bearbeitet
 
fakerl_
Tutorial Leser
Tutorial Leser

Anmeldedatum: 11.03.2007
Beiträge: 33


Verfasst am: 24.06.2007, 10:42

irgentwie geht das bei mir nicht, ich geh auf meine Form und drück die Rechte maustaste und was kommt NIX.
Ich nutze Microsoft Visual Basic 6....
weiss jmd woran das liegt?
_________________
wtf?!
 
Amethyst_
Poster
Poster

Anmeldedatum: 24.02.2007
Beiträge: 172


Verfasst am: 24.06.2007, 11:28

fakerl hat Folgendes geschrieben:
irgentwie geht das bei mir nicht, ich geh auf meine Form und drück die Rechte maustaste und was kommt NIX.
Ich nutze Microsoft Visual Basic 6....
weiss jmd woran das liegt?

Strg + E
_________________
 
boehser enkel_
Tutorial Leser
Tutorial Leser



Anmeldedatum: 29.07.2007
Beiträge: 40


Verfasst am: 04.03.2008, 22:25

nettes tut
würe mich noch über n update freuen (menü mit icons?)
_________________
 
ZiG_
Überflieger
Überflieger

Anmeldedatum: 07.03.2007
Beiträge: 1248


Verfasst am: 05.03.2008, 09:09

Normal werden Icons nicht unterstützt, aber wahrscheinlich kann man das per Api regeln. (Google hilft weiter)

Ich würde dir aber einfach eine nette ActiveX Komponente empfehlen womit man das regeln kann. Bei CoolXP gibt es z.B. so eine.
_________________
Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
 
boehser enkel_
Tutorial Leser
Tutorial Leser



Anmeldedatum: 29.07.2007
Beiträge: 40


Verfasst am: 05.03.2008, 14:05


ja hab schon n source gefunden und arbeite mich mal durch Wink
_________________


 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Texte und Ebooks

Tags: rechte maustaste, popupmenu, menü, erstellen

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Wie kann ich mich bei euch anmelden?? 387 20.05.2002, 01:28
Keine neuen Beiträge Eine kleine Frage an euch.. 373 30.09.2007, 09:57
Keine neuen Beiträge TopMost Funktion unter DirectX 432 27.07.2007, 11:48
Keine neuen Beiträge Wie Funktion nutzen ? 540 29.06.2007, 21:59
Keine neuen Beiträge update funktion einbauen 741 29.01.2007, 00:11
 



[ Time: 0.3345s ][ Queries: 103 (0.0308s) ][ GZIP on - Debug on ]