TabPage|ListView problem



  • Hi all,

    ich hab ein TabControl den ich referenziere und in einer Extra klasse behandeln will in der Klasse adde ich dann meine TabPages die ich per Button einfügen kann, meine TabPages haben alle ein ListView. Also alles das erzeuge ich in einer extra Klasse…..
    So wenn ich jetzt neue Tabs Adde läuft alles schön und gut so wenn ich jetzt aber im Ersten Tab ein Item Doppelklicke ändert der das nicht im aktuellen Tab sondern immer im Letzten geöffneten. Ich hab schon einiges probiert ich weiß momentan nicht wieso oder eher gesagt ich weiß nicht wie ich es beheben könnte.

    Ich denk mal ich muss herausfinden welcher ListView grad aktiv ist nur wie mach ich das????

    MfG
    blubbstarS



  • sorry für schlechte Rechtschreibung im ersten post.

    ich hab ein TabControl den ich referenziere, denn übergebe ich einer Extra klasse in der Klasse adde ich jetzt meine TabPages die ich mit einem Button erzeugen kann in dem TabPage adde ich jetzt immer einen ListView.
    Wenn ich jetzt neue Tabs erzeuge(mit meinem Button) läuft alles schön und gut, wenn ich jetzt aber im Ersten Tab ein Item Doppelklicke ändert der das nicht im aktuellen Tab sondern immer im Letzten geöffneten. Ich hab schon einiges probiert ich weiß momentan nicht wieso oder eher gesagt ich weiß nicht wie ich es beheben könnte.

    Ich denk mal ich muss herausfinden welcher ListView grad aktiv ist nur wie mach ich das????

    MfG
    blubbstarS

    ps. ich hoffe ist so besser zu lesen



  • Hallo

    Du musst doch eigentlich nur den aktiven Tab herausfinden und dann das entsprechende ListView ansprechen.

    chrische



  • also wenn ich den TabPage kenne, wie spreche ich den dann das ListView an. 😕 Momentan ist bei mir so im Kopf Rauchwolke ^^.
    Also zum beispiel bei dem event Selected bekomm ich ja das angeklickte TabPage. Hmm…. Wie kann ich dem denn jetzt sagen aus diesem ListView hab ich auf das ListViewItem geklickt und bitte änder das mal in dem momentanen Tab?

    MfG
    blubbstarS



  • Hallo

    Du hast doch auf jedem Tab einen extra listView. Dann musst du doch nur diesen einen ändern.

    chrische



  • Hi chrische5,

    ich hab verstanden wie du das meinst aber ich weiß nicht wie ich jetzt denn ListView anspreche ich hab ja z.B. das Event Selected für den Tab. Damit kann ich ja jetzt mir den Tab zurück geben lassen und weiß in welchem ich bin. So wie kann ich denn jetzt damit den ListView ansprechen?????

    MfG
    blubbstarS



  • z.B. über den Namen des Listview. oder über sender.Controls[x]



  • Am einfachsten:

    if (sender == tabPage1) {
       listView1.irgendwas
    } else if (sender == tabPage2) {
       listView2.irgendwas
    }
    ...
    

    D.h. Du musst Dir schon merken welcher ListView zu welcher TabPage gehört (über Controls suchen halte ich für mühsam, wenngleich möglich).

    Geht natürlich besser mit Feldern oder Tabellen.



  • Wenn's das einzige Control ist, ist da nix mühsam und wenn nicht, dann über alle Controls iterieren, Typ prüfen, Änderung durchführen - fertig. Funktioniert für alle Tabs und perfekt wenn die Tabs und Inhalt dynamisch erzeugt wurden.

    Die Lösung über die Namen ist bei zwei Tabs noch ok, und wenn's 20 Tabs sind? - 20 globale Variablen, 20 Abfragen, etc. und wenn eine neue dazukommt, dann an 30 Stellen Code ändern - suboptimal.



  • Klar, deshalb ja auch Felder und Tabellen. Grundsätzlich habe ich meine Controls schon gern logisch gruppiert - und wenn man die TabPages und ListViews dynamisch erstellt, spricht doch nichts gegen (z.B.) eine List<irgendeineStruct>, wobei in der Struktur natürlich die Controls enthalten sind. Bei Designergeneriertem klappt das natürlich nicht, aber selbst dort würde ich persönlich die Controls am Anfang zunächst zusammensuchen (über die Controls-Collection oder eine hartcodierte Liste) und dann mit dieser Sammlung arbeiten.



  • Ok, über 'ne Liste ist das auch 'ne feine Sache, hatte Dich da falsch verstanden.



  • Vielen dank für die Hilfe.

    MfG blubbstarS


Anmelden zum Antworten