Auf CheckedListBox reagieren.

  • VB.NET

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von Cornelia.

    Auf CheckedListBox reagieren.

    Hi,

    ich möchte über eine CheckedListBox etwas markieren, ein oder mehr Zeilen (sind insgesamt 5 Einträge zu diversen WordDokumenten), und anschließend mittels Betätigung von einen Button die zugehörigen Dokumente laden. Mit dem folgendem Beispiel wollte ich es für ein Dok. probieren. -Geht natülich nicht- :cursing:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim objWord
    3. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    4. If CheckedListBox1.CheckedItems(2) = True Then
    5. objWord = CreateObject("Word.Application")
    6. objWord.Visible = True objWord.Documents.Open("C:\Text.doc")
    7. End If
    8. End Sub
    9. End Class




    Danke im voraus

    Cornelia
    *aahhrrrggg*

    Deine If Abfrage ist ungefähr so:

    Wenn (CheckedListBox1.CheckedItems(2) = Wahr) Wahr ist...
    ist es nicht bssl komisch? :D

    Eine if Abfrage nimmt True als Standard wert (Iff-Abfrage erwartet einen Boolean als Rückgabewert)

    also reicht es wenn du CheckedListBox1.CheckedItems(2) schreibst. Wenn es True ist dann wird es automatisch zurückgeliefert ;)

    Und bei Negation oder wie man dass auch nennt einfach mal Not benutzen ;)

    Zu deinem Problem:
    Guck dir diesen Thread an :)
    [VB 2005] Mehrere Selectierte Items ausfindig machen
    @Nikolai: soweit ich weiß sind aber die CheckedItems eine Auflistung der markierten Items, also sind sie alle markiert. Dann müsste es

    VB.NET-Quellcode

    1. if Checkedlistbox1.items(2).checked = true
    oder so heißen
    Hallo Ihr zwei,


    danke für die Info's. Damit hat mein Anliegen erst mal funktioniert:

    VB.NET-Quellcode

    1. If CheckedListBox1.GetItemChecked(1) = True Then
    2. MessageBox.Show(s)
    3. End If


    Was ist aber, wenn mehr als ein Eintrag markiert wird und für jeden Eintrag eine separate MessageBox gezeigt werden soll?
    das kannst du so lösen:

    VB.NET-Quellcode

    1. For a As Integer = 0 To CheckedListBox1.Items.Count - 1
    2. If CheckedListBox1.GetItemChecked(a) = True Then
    3. MsgBox(CheckedListBox1.Items(a))
    4. End If
    5. Next
    Hallo

    VB.NET-Quellcode

    1. For Each nummer As Integer In CheckedListBox1.CheckedIndices
    2. If nummer = 0 Then
    3. 'blabla
    4. ElseIf nummer = 1 Then
    5. 'blabla
    6. ElseIf nummer = 2 Then
    7. 'blabla
    8. ElseIf nummer = 3 Then
    9. 'blabla
    10. End If
    11. Next


    so, oder auch per Namen

    VB.NET-Quellcode

    1. For Each itemname As String In CheckedListBox1.CheckedItems
    2. If itemname = "blabla" Then
    3. 'blabla
    4. ElseIf itemname = "blubb" Then
    5. 'blabla
    6. End If
    7. Next


    so kann man das machen

    VB.NET-Quellcode

    1. If CheckedListBox1.GetItemChecked(0) Then
    2. 'blabla
    3. End If
    4. If CheckedListBox1.GetItemChecked(1) Then
    5. 'blabla
    6. End If
    7. If CheckedListBox1.GetItemChecked(2) Then
    8. 'blabla
    9. End If
    10. If CheckedListBox1.GetItemChecked(3) Then
    11. 'blabla
    12. End If


    Gruß :)

    e/Och menno, was ist mit VB-Code los :(
    Vielen Dank für die Antworten. Mit MessageBox hatte ich allerdings das wohl ungünstigste Beispiel ausgesucht. Ich meinte eigentlich eine Folge von Anweisungen die immer wieder kehren soll. Genauer gesagt:

    1. öffnen von Word (Vorgehensweise ist klar)

    2. laden eines bestimmten Dokumentes (Vorgehensweise ist klar)

    3. zuweisen von Eigenschaften (nur lesen, schreiben...)

    Mit den von Euch vorgeschlagenen Tipps funktioniert das, aber ich muss den ganzen Krempel je Dokument einmal abbilden. Wie ist es möglich das einmal zu deklarieren und dann immer wieder nur so abzurufen, dass ich nur den Pfad des Dokumentes (ist bei jedem Dokument anders) neu angeben muss.



    Gruß

    Cornelia
    ähm ich hab nicht ganz verstanden was du vorhast. Also ich hab das jetzt so verstanden: du hast deine Dokumente, und die öffnest du nacheinander und schreibst in jede das Gleiche. Ist das richtig? Wenn ja kannst du doch vorher alles als String deklarieren, und das dann immer abrufen

    VB.NET-Quellcode

    1. Dim bla as String = "deinkram"