MdiTabStrip index out of range

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von Alufolie.

    MdiTabStrip index out of range

    VB.NET-Quellcode

    1. CType(MdiTabStrip1.ActiveTab.Controls.Item(0), Skybound.Gecko.GeckoWebBrowser).Navigate("http://www.google.de/")


    hier bekomme ich den

    Quellcode

    1. Index 0 is out of range
    Error

    Form1 ist der mdi container und beinhaltet das mditabstrip und form2 beinhaltet den geckowebbrowser!!
    meine frage ist ja!!

    wie kann ich dann auf den webbrowser eines tabs zugreifen??

    er befindet sich ja in form2 und wird als mdichildform in form1 geladen und das öfters, da ich mit tabs arbeite!!

    wenn ich versuche den geckowebbrowser so anzusprechen:

    VB.NET-Quellcode

    1. Form2.GeckoWebBrowser1.Navigate(url_text.Text)


    dann kommt folgender fehler!

    Quellcode

    1. Cannot call Navigate() before the window handle is created

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

    Ich schließe mich an jvbsl an:

    Wenn der Index den Wert 0 hat und er außerhalb der Grenze liegt (out of range), dann kann man davon ausgehen, dass das Steuerelement keine Items enthält.

    Wie jvbsl schon geschrieben hat: Der aktive Tab beinhaltet kein Control.
    Wie man dann auf den Webbrowser zugreift weiß ich auch nicht so genau. Es sollte schon so funktionieren, allerdings: Wo wird Dein GeckoWebBrowser erstellt. CType geht von dem Objekt aus, das sich im zweiten Parameter von CType() befindet. das heißt, dass ein neuer Skybound.Gecko.GeckoWebBrowser definiert wird, der nirgendswo angezeigt wird.

    CType(2,String) würde einen String zurückgeben, der so aussieht: "2"

    CType() mit den Parametern wie Du es geschrieben hast würde einen Skybound.Gecko.GeckoWebBrowser zurückgeben, in den ein Tab konvertiert würde.

    Also wie kann ein Tab zu einem WebBrowser konvertiert werden?
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils
    da hast du recht!! ich kannn wohl schlect einen tab zu einem browser konvertieren!!

    aber es muss doch trotzdem eine möglichkeit geben auf des webbrowser control zuzgreifen???

    ich erklär den Vorgang nochmal näher:

    Form2:

    beinhaltet den geckowebbrowser auf dock = fill

    Form1:

    beinhaltet das mditabstrip und ismdicontainer = true

    wenn form1 lädt, dann wird autom. die form2 als mdichildform (in einem neuem tab) geladen!!
    MdiTabStrip1.ActiveTab.Control

    AktiverTab->Controls, also würde es vom Prinzip her schon stimmen...

    Also ich kenn mich mit dem MDITabControl nicht aus, aber warum für einen WebBrowser? Da genügt doch das normale TabControl?!
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    das normale tabcontrol sieht nicht sehr ansehnlich aus und mir ist dieser punkt sehr wichtig!!

    ich glaub ich bin haute ein bisschen blöde :D wie würde der code aussehen für navigate??

    MdiTabStrip1.ActiveTab.Control... und der rest??

    nochmals sory für meine heutige blödheit!!

    Tabs erstellen

    Puh, also ich würde sagen MDITabControl.TabPages.Add() oder MDITabControl.AddTab() Irgendsowas.
    Ich kann nur sagen, wie das beim normalen TabControl ist:

    Einen standard WebBrowser kann man so in einem neuen Tab erstellen:

    VB.NET-Quellcode

    1. TabControl1.TabPages.Add("Tab3") 'Zuerst einen Tab hinzufügen
    2. Dim WebBrowser As New WebBrowser 'Einen neuen WebBrowser deklarieren
    3. WebBrowser.Dock = DockStyle.Fill 'Z.B. Den DockStyle ändern
    4. 'sonstige Properties
    5. TabControl1.TabPages(2).Controls.Add(WebBrowser) 'Dann das Control in den Tab einfügen (In dem Fall ist das der Tab mit dem Index 2)


    Auf diese Weise können auch TableLayoutPanels hinzugefügt werden (für Adressleiste, Buttons, usw...).

    Wie genau das bei dem MDITabControl ist weiß ich auch nicht.

    Auf den WebBrowser greif ich so zu:

    VB.NET-Quellcode

    1. TabControl1.TabPages(2).Controls(0).

    Nach dem Punkt die Eigenschaft, allerdings find ich da nirgends eine URL Eigenschaft für den Browser (Was eigentlich logisch ist, weil erst zur Laufzeit bekannt ist, was sich im Tab befindet. Das sollte eigentlich irgendwie machbar sein. Hab mich allerdings noch nicht so damit beschäftigt.
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils