C# .Net | Tabcontrol / Tabpages nehmen neue Controls nicht auf

Nabend :D
ich habe momentan ein problem. Habe vor kurzem mit den ganzen .NET Sprachen angefangen und bin eigentlic ziemlich begeistert von .NET, mittlerweile ist programmieren nix besonderes mehr... drag'n'drop blabla.. aber das isn anderes thema ^^

So nun zu meinem problem.
Ich habe mirn normales Form gebastelt. Hab darauf nen Tabcontrol gelegt. In den Tabs (anfangs gibts nur eins) wird ein WeBrowser angezeigt. (Klappt soweit auch)

Nun habe ich einen Button eingebaut, mit dem man einen neuen Tab generieren kann. Jedoch verstehe ich nicht wie man dem im Tab Controls in der Runtime einbindet. Hab gespielt und gespielt aber es klappt nicht.

Hier mal der Code:

Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace Webbrowser
{
    public partial class frmStart : Form
    {
        public WebBrowser web = new WebBrowser();
        public TabPage p = new TabPage();
        public frmStart()
        {
            InitializeComponent();
        }

        private void btnOpenURL_Click(object sender, EventArgs e)
        {
            webStart.Navigate(txtUrl.Text);
        }

        private void btnMinTray_Click(object sender, EventArgs e)
        {
            this.Visible = false;
            ntfyTray.Visible = true;
        }

        private void ntfyTray_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            this.Visible = true;
            ntfyTray.Visible = false;
        }

        private void btnNewTab_Click(object sender, EventArgs e)
        {
            tabBrowser.TabPages.Add("Tab " + tabBrowser.TabCount);
            Controls.Add(web);
            web.Visible = true;
            web.Dock = DockStyle.Fill;
        }
    }
}

Ist nix besonderes, aber erst mal in .NET druchsteigen ist angesagt ;D
 
Hab noch nix damit gemacht. Hab mir aber gerade dein Beispiel angeschaut.
Versteh ich dich richtig, dass du gerne in jedem Tab etwas anderes anzeigen möchtest?!
Bei mir zeigt es momentan in jedem Tab das gleiche an.

Gruß
schmitti81
 
Du wirst für jeden Tab einen neuen WebBrowser erstellen müssen!

Code:
        private void btnNewTab_Click(object sender, EventArgs e)
        {
            WebBrowser newbrowser = new WebBrowser();
            TabPage tabc = new TabPage("Tab " + tabBrowser.TabCount);

            tabc.Controls.Add(newbrowser);
            newbrowser.Visible = true;
            newbrowser.Dock = DockStyle.Fill;

            // Den WebBrowser mit dem Tab "assoziieren", muss nicht sein
            tabc.Tag = newbrowser;

            // Den vorbereiteten Tab hinzufügen, MUSS SEIN
            tabBrowser.TabPages.Add(tabc);
        }

Sollte gehen, habs mal quick+dirty geschrieben ausm Gedächtnis heraus...
 
ich probiere es nachher mal aus :) aber danke für den Vorschlag.
Hab zwar mit unserem externen Berater auch ne Möglichkiet gebastelt... aber die ist viel zu kompliziert... neues Control anlegen WebBrowser rein pipapo... also das ist echt zu krass...

Aber ich schaus mir nachher zuhause mal an. Und berichte ob es klappt :)
Danke schonmal :)

EDIT: Klappt wunderbar danke :)
EDIT 2: Und wenn ich jetzt auf die Browser in den Tabs "zugreifen" möchte muss ich doch den SelectedTab abrufen und dann den browser ansprechen oder?!
 
Ja, du rufst SelectedTab auf und da ich ja das "assoziieren" vorgeschlagen habe, kannst du einfach .SelectedTab.Tag machen und hast den Webbrowser. Also:

(wieder ausm Kopf, also eventuell kleiner Rechtschreibfehler o.Ä. drin)

Code:
WebBrowser zugriff = (WebBrowser)tabBrowser.SelectedTab.Tag;

Das "(WebBrowser)" ist nötig um den Typ "WebBrowser" zu bekommen.

LG
 
Benutzt du MS Visual Studio? *auf JA tipp*

Wenn ja, schau mal den Code-Vervollständiger an ... wenn du da tabBrowser.TabPages. (mit dem Punkt) eingbist, siehst du auch eine Methode "Remove" ... das kannst du verwenden, um Tabs zu entfernen (Wobei ich mir erst überlegen müsste ob da irgendeine Speicherfreigabe günstig wäre ...)

Bitte schau in Zukunft ein bisschen genauer in diesen Code-Vervollständiger, ich lerne ca 70% der Funktionalität der Klassen nur daraus. Ein Tool von MS das mal Nützlich ist (wobei es natürlich Alternativen gibt die nicht von MS sind, aber das kenn ich grad ganz gut)

LG
 
Zurück
Oben