Bei klick auf MenuItem Textbox öffnen

  • VB.NET

Es gibt 20 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    Bei klick auf MenuItem Textbox öffnen

    Hallo,

    Ich habe mit Menustrip verschiedenen Menuitem erstellt,
    wie mache ich das wenn ich auf das InfoToolStripMenuItem klicke, dass sich dann eine Textbox mit einem Hinweistext öffnet,
    und wenn ich auf ein anderes MenuItem klicke, soll die Textbox wieder verschwinden ???
    Ich bin noch ziemlicher Anfänger, aber jeder fängt schliesslich mal an, also nicht böse sein..... :D


    Gruss
    Tomm
    Eine Textbox kann sich nicht öffnen.
    Du musst ein Form erstellen, mit einer Textbox drauf.
    Das Form kannst du dann im MenuItem_Click - event öffnen.
    Und in einem anneren MenuItem_Click wieder schliesssen, wenn wolle.

    Übrigens für einen Hinweistext sollte man keine Textbox nehmen. Textboxen sind dazu da, dass der User da was einträgt. Nimm ein Label.
    evtl kannst du ein Form machen, was du dann mit je einem anneren Hinweistext befüllst?

    Und ja - wenn du möchtest, da und da soll das Form wieder zumachen, musst du das entsprechend programmieren.
    Probier das mal und poste deinen Code, dann kann man den evtl. verbessern, bisser wirklich einfach aussieht.
    So hab ich das gemacht,aber wie kann ich den Text anzeigen

    Visual Basic-Quellcode

    1. Private Sub InfoToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles InfoToolStripMenuItem.Click
    2. Dim Form2 As New Form
    3. Form2.Width = 300
    4. Form2.Height = 120
    5. Form2.Show()
    6. End Sub

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Tomm88“ ()

    Nochmal für mich bitte zum Mitschreiben: Du hast ein Formular mit z.B. 5 Buttons, 3 TextBoxen, einem DGV und einem Menü mit >= 10 Einträgen. Wenn man auf einen bestimmten (z.B. den dritten) Menüeintrag klickt, soll ein Hinweistext kommen. Und nur dann, wenn man einen anderen Menüpunkt anklickt, soll der Hinweistext verschwinden. Richtig? Was soll passieren, wenn man den 3. Menüeintrag oder einen Button oder eine TextBox anklickt? Nichts? Oder doch? Aber was?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Ich hab keine Buttons, sondern nur ein Menü.
    Wenn man auf "Info" klickt, dann soll ein Text erscheinen.

    Die anderen MenuItems sind "Speichern","Öffnen","Beenden","Speichern unter","Drucken" ............ und noch einige andere ......
    das hab ich aber alles hin bekommen
    Nochmal: Was soll passieren, wenn die Infobox angezeigt wird und man auf irgendeinen Menüpunkt klickt? Soll es überhaupt möglich sein, dass man etwas vom Formular anklicken kann, wenn die Infobox angezeigt wird? Denn wenn nicht, ist es eine ganz einfache Infobox: Erstell ein neues Formular im Designer, bastel es so zusammen, wie es zur Laufzeit angezeigt werden soll und lass es dann zur Laufzeit nicht mit frm.Show(), sondern mit frm.ShowDialog(Me) anzeigen.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Wenn man den Menüpunkt "Info" anklickt soll ein Text auf der Form erscheinen, der soll solange sichtbar sein bis man einen anderen Menüpunkt anklickt.
    Wenn man einen anderen Menüpunkt anklickt soll der Text wieder weg sein.
    Ok, und soll der Text im selben Formular ("derselben Form") erscheinen, wo auch das Menü ist oder soll der Text in nem Extraform aufploppen?
    Wenn es im selben Formular ist, dann platzier die Richtextbox an passender Stelle und schalte sie auf unsichtbar (im Eigenschaftenfenster: Visible = False). Wenn dann der Info-Menüpunkt angeklickt wird, dann als Code:

    VB.NET-Quellcode

    1. DeineRichTextBox.Visible = True
    und bei den anderen Menüpunkten als (Zusatz-)Code

    VB.NET-Quellcode

    1. DeineRichTextBox.Visible = False
    .
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    Tomm88 schrieb:

    Wenn man den Menüpunkt "Info" anklickt soll ein Text auf der Form erscheinen, der soll solange sichtbar sein bis man einen anderen Menüpunkt anklickt.
    Dassis jetzt neu.
    bislang sollte sich eine "Textbox öffnen", und weil das nicht geht, sollte sich ein Form mit einer Textbox öffnen.

    Beachte: "Sichtbar werden" ist was anneres als "sich öffnen". Was meinst du nun?



    Zum Code in Post#5: Tja, wenn du nur New Form machst, ist da natürlich keine Textbox drauf.
    Ich sagte ja in Post#4: mach dir ein form - Also Menü - Projekt - Form hinzufügen - und da eine Textbox (oder was auh immer) draufmachen.
    (also wenn es das ist, was du willst - ist ja nun höchst unklar)



    Und - sag ich dir gleich - gib dem Form einen vernünftigen Namen. Wenn das Form Hinweise anzeigen soll, dann muss es frmHinweis heissen - bitte auf keinen Fall(!!) Form3
    immer noch unklar - es eröffnet sich sogar noch eine dritte Möglichkeit:
    willst du
    ein Form öffnen/schliessen mit dem Hinweistext drauf?
    ein Label anzeigen/verstecken mit dem Hinweistext drauf?
    ein Label anzeigen/verstecken mit dem Hinweistext drauf - welches auf einer anderen Form liegt, die beständig angezeigt ist?

    Einige dich mal auf etwas!

    (Und verzichte auf die beständigen Vollzitate - dassis hier nicht so gern gesehen)
    Das ist doch ganz einfach

    Stell dir mal vor es wäre eine Webseite und du klickst im Menü auf das Impressum, dann erscheint da ein Text
    Ist nur ein Beispiel

    Und genauso möchte ich das auch
    Ob man da eine neue Form braucht, oder ob die bisherige Form1 reicht, weiss ich leider auch nicht

    Ich schätze mit "Visible" müßte es eigentlich funktionieren
    Aber dann ist es doch einfach.
    Erstelle ein Label auf deiner Form, wo der Hinweistext angezeigt werden soll und weise im Click Event deines MenuItem der TextProperty deinen gewünschten Text zu. Soll es zusätzlich noch ein/ausgeblendet werden musst du halt entsprechend die Visible Property setzen
    "Hier könnte Ihre Werbung stehen..."
    Okay Danke
    Ich wollte nur noch wissen, ob ich bei jedem anderen MenuItem den Text mit 'visible=false' wieder aublenden muss, oder geht das auch einfacher ???

    Vollzitat entfernt. ~Thunderbolt

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Thunderbolt“ ()

    Ich würde da jeden beliebigen Mausklick abfangen und die Info-Seite ausblenden.
    Beim Form-Load einen Handler für alle Controls hinzufügen.
    Nicht getestet, aber ungefähr so:

    VB.NET-Quellcode

    1. Private Sub MyForm_Load(sender As Object, e As EventArgs) Handles MyForm.Load
    2. For Each ctl in Me.Controls
    3. AddHandler ctl.MouseClick, AddressOf Control_Click
    4. Next
    5. End Sub
    6. Private Sub Control_Click(sender As Object, e As MouseEventArgs) Handles MyForm.MouseClick
    7. InfoLabel.Visible = False
    8. End Sub
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Man müsste dann nur zwischen Zeile#2 und #3 die Bedingung einbauen, dass der InfoMenüPunkt ausgeschlossen wird.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Ich weiß nicht genau, wie die Eventreihenfolge ist.
    Wenn des Click-Event nach dem MouseClick-Event gefeuert wird, wäre es nicht nötig.

    Edit:
    Ich habe gerade nachgeschaut.
    MouseClick wird nach Click gefeuert.
    Sinnvollerweise würde man deshalb anstelle MouseClick das MouseDown-Ereignis abfangen, um das Label unsichtbar zu machen.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „petaod“ ()