TabSheets disablen



  • Hallo Forum

    Ich habe eine GUI mit mehreren Tabs und würde gerne einzelne Tabs disablen bei bestimmten Events, wie zum Beispiel einem button_click.
    Hier also meine Frage: Ist es möglich einzelne Tabsheets zu disablen bei einem bestimmten Event? Sagen wir mal, wenn ich den Button "Berechnen" drücke, dann kann ich Tab 1 nicht mehr öffnen und es wird so leicht gräulich dargestellt. Also irgendwie sowas:

    private void Berechnen_Click(object sender, EventArgs e)
            {            
                tabSheet1.disable(true);            
                Update();
            }
    

    Die Funktion disable habe ich leider bisher nirgendwo gefunden. Gibt es sowas?

    Vielen Dank für eure Hilfe!



  • Hallo

    Versuch es mal mit

    Enable = false;
    

    chrische



  • Danke, das habe ich ausprobiert. Es wird dann zwar die TabPage disabled, aber nicht das Tab selber. Gibt es die Möglichkeit das komplette Tabsheet auszugrauen, so dass der Benutzer keine Möglichkeit mehr hat das Tab anzuklicken?



  • Hallo

    Dann setzte doch das Property für den gesamten Tabbereich und nicht nur für das einzelne Blatt.

    chrische



  • Hmm, wenn ich den gesamten Tabbereich disable, dann ist ja auch mein momentaner tab disabled. Das möchte ich ja aber nicht. Ich möchte mit sagen wir Tab1 weiterarbeiten, während z.B. Tab2, Tab3 disabled sind, Tab4 aber widerum nicht. Das ganze hätte ich halt gerne auch ausgegraut und nicht nur die zugehörigen TabSheets der Tab2, Tab3 disabled, sondern tatächlich das komplette Tab2 od. Tab3. Ich habe das Gefühl dass das gar nicht möglich ist, kann das sein?



  • Hallo

    Ich glaube nun verstehe ich, was du willst. Helfen kann ich dir allerings nicht.

    chrische



  • Dir bleiben zwei Möglichkeiten, entweder du schreibst dir ein UserControl, welches von TabPage erbt und fügst die Property Enabled ein.
    Oder du gehst den Weg über

    tabControl.TabPages.Remove(deineTabPage);
    

    zum entfernen und über

    tabControl.TabPages.Add(deineTabPage);
    

    bzw.

    tabControl.TabPages.Insert(int index, deineTabPage);
    

    zum wieder hinzufügen zur Auflistung. Die Version mit "Insert" gibt dir die Möglichkeit über den Index zu bestimmen wo die TabPage wieder eingefügt werden soll.



  • Danke michme, ich habe nach langem stöbern im Internet tatsächlich jemanden gefunden, der genau das, was ich gesucht habe, als Erweiterung der .Net Toolbox geschrieben hat. Hier der Link für alle, die auch mal einzelne Tabs disablen wollen und das ganze nicht selbst implementieren möchten:

    http://www.softwarebrigade.com/projects/CSharp/tools/downloads.php?&fcaccion=upcounter&fcfile=downloads%2FSoftwarebrgade_Controls-v1.0.4-fw2_0.zip

    Funktioniert super!

    Grüße
    Samo


Anmelden zum Antworten