Task-Manager Problem!

  • VB.NET

Es gibt 21 Antworten in diesem Thema. Der letzte Beitrag () ist von Zorndel.

    Task-Manager Problem!

    Hab ein Problem mit meinem Task-Manager.

    Und zwar, hab ich ein TabControl, womit ich halt 3 Seiten hab (TabPage1, TabPage2 & TabPage3) und jede Seite hat eine ListView.


    VB.NET-Quellcode

    1. Private Sub NsButton1_Click(sender As Object, e As EventArgs) Handles NsButton1.Click
    2. ApplicationsList.Items.Clear()
    3. ApplicationsProcessNameList.Items.Clear()
    4. ApplicationsIDList.Items.Clear()
    5. For Each oProcess As Process In Process.GetProcesses
    6. If Not String.IsNullOrEmpty(oProcess.MainWindowTitle) Then
    7. ApplicationsList.Items.Add(oProcess.MainWindowTitle) 'TabPage1 // ListView #1
    8. ApplicationsProcessNameList.Items.Add(oProcess.ProcessName) 'TabPage2 // ListView #2
    9. ApplicationsIDList.Items.Add(oProcess.Id) 'TabPage3 // ListView #3
    10. End If
    11. Next
    12. End Sub

    Wenn ich auf den Button klicke, wird mir aber nur die ID bei allen drei !verschiedenen! ListView-Controls angezeigt.
    Wobei ich die ID nur bei der TabPage3 haben will.

    Weiß jemand eine Lösung für dieses Problem?
    Ist ja logisch! Ist der Code von dir? Du solltest dich erstmal mit den Grundlagen beschäftigen. For Each-Schleifen machen das natürlich für jedes Item.
    Du musst den Index angeben, der in diesem Fall 2 ist, da es das dritte Item ist und 0 der erste Index.
    Willkommen im Forum. :thumbup:
    Was genau soll denn passieren, wenn Du auf den Button drückst?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @programmer71
    Ich hab mich bisher noch nie mit den For Each-Schleifen befasst.
    Wie kann ich denn den Index festlegen?
    Kannst Du mir eventuell einen kleinen Code als beispiel zeigen, bzw. meinen bearbeiten?
    Der Code war von RodFromGermany bei einem anderen Thread das ich bei Google gefunden hab. :)

    @RodFromGermany
    Hallo und Danke. :)
    Es soll in ApplicationsList.Items.Add die MainWindowTitle-Prozesse stehen.
    Bei ApplicationsProcessNameList soll dann Process Name und bei ApplicationsIDList dann die ProcessID's.
    @Zorndel: Was ist denn nicht so wie es sein soll?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    ApplicationsList & ApplicationsProcessName ist nicht so wie es sein soll.
    ApplicationsIDList hat die passenden ID's vorhanden bei Button-Klick.

    Wenn ich aber oProcess.ProcessName & oProcess.Id entferne vom Button-Code, dann steht überall nur noch haufen "0" untereinandergeordnet.
    Aber auch nur in der ListView von ApplicationsList.

    VB.NET-Quellcode

    1. Private Sub NsButton1_Click(sender As Object, e As EventArgs) Handles NsButton1.Click
    2. ApplicationsList.Items.Clear()
    3. ApplicationsProcessNameList.Items.Clear()
    4. ApplicationsIDList.Items.Clear()
    5. For Each oProcess As Process In Process.GetProcesses
    6. If Not String.IsNullOrEmpty(oProcess.MainWindowTitle) Then
    7. ApplicationsList.Items.Add(oProcess.MainWindowTitle)
    8. End If
    9. Next
    10. End Sub

    Zorndel schrieb:

    ist nicht so wie es sein soll.
    Wie soll es denn sein?
    Befülle jede dieser Listen separat, zwar in einer genmeinsamen For Each-Schleife, aber in separaten If-Blöcken.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @Zorndel: So:

    VB.NET-Quellcode

    1. For Each oProcess As Process In Process.GetProcesses
    2. If _BEDINGUNG_1_ Then
    3. ApplicationsList.Items.Add(oProcess.MainWindowTitle) 'TabPage1 // ListView #1
    4. End If
    5. If _BEDINGUNG_2_ Then
    6. ApplicationsProcessNameList.Items.Add(oProcess.ProcessName) 'TabPage2 // ListView #2
    7. End If
    8. If _BEDINGUNG_3_ Then
    9. ApplicationsIDList.Items.Add(oProcess.Id) 'TabPage3 // ListView #3
    10. End If
    11. Next
    Die Bedingungen musst Du Deinen Bedürfnissen anpassen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ja, genau das ist ja das, was ich nicht direkt verstehe! :/
    Es soll halt einfach nur bei Button-Klick gemacht werden, sag ich jetzt mal.
    Button-Klick = ListView1, 2 & 3 gefüllt mit den richtigen Ergebnissen die ich haben möchte.

    Ich kenne die If-Blöcke, ich weiß was der Zweck ist, aber im prinzip will ich die ja nicht, sondern einfach nur beim Button-Klick das Ergebniss in die entsprechende ListView's eingetragen.
    Dennoch Danke erstmal für deine Unterstützung bisher.

    Zorndel schrieb:

    Ja, genau das ist ja das, was ich nicht direkt verstehe!
    Probier mal dies:

    VB.NET-Quellcode

    1. Private Sub NsButton1_Click(sender As Object, e As EventArgs) Handles NsButton1.Click
    2. ApplicationsList.Items.Clear()
    3. ApplicationsProcessNameList.Items.Clear()
    4. ApplicationsIDList.Items.Clear()
    5. For Each oProcess As Process In Process.GetProcesses
    6. If Not String.IsNullOrEmpty(oProcess.MainWindowTitle) Then
    7. ApplicationsList.Items.Add(oProcess.MainWindowTitle) 'TabPage1 // ListView #1
    8. End If
    9. ApplicationsProcessNameList.Items.Add(oProcess.ProcessName) 'TabPage2 // ListView #2
    10. ApplicationsIDList.Items.Add(oProcess.Id) 'TabPage3 // ListView #3
    11. Next
    12. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!




    Hoffe Du kannst es erkennen.
    Wie man sieht hab ich ein TabControl und 3 TabPage's.
    Jede Page hat Rechts eine ListView.
    Jede ListView soll eine andere Prozess-Ausgabe haben (sag ich jetzt mal).
    Die erste (ApplicationsList) = oProcess.MainWindowTitle
    Die zweite (ApplicationsProcessNameList) = oProcess.ProcessName
    Die dritte (ApplicationsIDList) = oProcess.Id
    Kann es sein, dass Du ein Problem hast, die ListView zu "bestücken"?
    Wie wäre es denn, gleich auf ein DataGridView umzusteigen?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    o.o
    Sorry, hab die ganze Zeit etwas falsches gedacht, dass ist keine ListView sondern eine ListBox.
    Wie dem auch sei, ich würde schon gerne bei der ListBox bleiben, weil es mir im großen und ganzen auch Perfekt passt vom aussehen her, etc. -
    Aber kann mir denn keiner helfen wie ich das Problem lösen? :(

    Zorndel schrieb:

    Aber kann mir denn keiner helfen wie ich das Problem lösen?
    Tut mir Leid, aber ich erkenne kein Problem, was Du mit den Posts oben nicht lösen kannst.
    Beschreibe bitte mal aus der jetzigen Sicht der Dinge Dein Problem noch einmal.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich hab ein TabControl mit drei TabPages.
    Jede TabPage hat eine ListBox, dass heißt, wenn ich die Seite wechsel, ist dann die andere ListBox aktiv.

    Die erste TabPage heißt: TabPage1 und die ListBox dazu heißt: ApplicationsList
    Die zweite TabPage heißt: TabPage2 und die dazugehörige ListBox dazu heißt: ApplicationsProcessNameList
    Die dritte und letzte TabPage heißt: TabPage3 und die ListBix dazu heißt: ApplicationsIDList

    Ich will, dass ApplicationsList die MainWindowTitle der Prozessen anzeigt.
    ApplicationsProcessNameList soll die ProcessName der MainWindowTitle-Prozesse anzeigen.
    ApplicationsIDList soll die ID's der MainWindowTitle, bzw. ProcessName anzeigen.

    Das ganze soll dann auch auswählbar sein, sowie auch Scrollbar sein, dass ganze funktioniert auch einmahnfrei.

    Ich bin mir Sicher, dass das ganze gestern auch noch ging mit einer einzigen ListBox.
    Seitdem ich aber den TabControl hab, zeigt es mir nur noch die ID's an und das bei allen ListBoxen, obwohl ich das nur auf die letzte ListBox (ApplicationsIDList) festgelegt hab.

    Wenn ich aber nun auch die TabControl entferne, dann funktioniert es aber auch nicht mehr.

    Ich bin mir aber auch Sicher gewesen, dass es das selbe ist und auch war wie gestern, es hat ja auch funktioniert, nur jetzt aus irgendeinen Grund nicht mehr.
    Hab auch schon Google durchforstet, sowie auch andere Wege probiert, helfen tut aber nichts.

    Normalerweiße schaffe ich alles alleine auf meine Art und Weiße zu regeln, aber hier bin ich am verzweifeln und weiß wirklich nicht mehr, was ich machen kann.

    Zorndel schrieb:

    es hat ja auch funktioniert
    Mach einfach ein neues Projekt ohne Tab-Control aber mit ListBox.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!