none
Wie kann ich mit einer checkbox einer andere checkbox auf checked, bzw. not checked setzen? RRS feed

  • Frage

  • Hi,

    folgendes Szenario:

    Wenn checkbox1 angewählt ist, sollen Checkbox 2 und 3 ebenfalls angewählt sein                                                               

    Wenn nur checkbox 2 ODER checkbox3 angewählt ist, soll checkbox 1 nicht angewählt sein

    Und ich würde gerne wissen was ich in die handler schreiben muss...

    habe es schon mit "$checkbox2.checked = $true" versucht, aber dann bekomm ich sie nicht mehr unchecked....

    $handler_checkBox1_CheckStateChanged= 
    {
    
    }
    
    $handler_checkBox2_CheckStateChanged= 
    {
            
    }
    
    $handler_checkbox3_CheckStateChanged= 
    {
    
    }

    PS: Ich habe die Checkboxen mit Primalforms erstellt, falls es etwas hilft :)

    Hoffe ihr könnt mir helfen;)

    VG



    • Bearbeitet MCMaggi Dienstag, 19. Juli 2016 08:28
    Dienstag, 19. Juli 2016 08:26

Antworten

  • Hi,

    das Problem ist, das "Add_CheckStateChanged" auch getriggert wird, wenn du nur den Status der Box veränderst, ohne die Box selbst anzuklicken.

    Ich würde die Zeilen:

    $checkBox1.Add_CheckStateChanged($handler_checkBox1_CheckStateChanged)
    $checkBox2.Add_CheckStateChanged($handler_checkBox2_CheckStateChanged)
    $checkBox3.Add_CheckStateChanged($handler_checkBox3_CheckStateChanged)
    

    durch

    $checkBox1.add_Click($handler_checkBox1_CheckStateChanged)
    $checkBox2.add_Click($handler_checkBox2_CheckStateChanged)
    $checkBox3.add_Click($handler_checkBox3_CheckStateChanged)

    ersetzen und damit das add_Click Event benutzen. Dein Event Block sieht das so aus:

    $handler_checkBox1_CheckStateChanged= 
    {
        if ($checkBox2.Checked -eq $false -and $checkBox3.Checked -eq $false){
            $checkBox2.Checked = $true
            $checkBox3.Checked = $true
        }
    }
    $handler_checkBox2_CheckStateChanged= 
    {
        if ($checkBox2.Checked -eq $true -and $checkBox3.Checked -eq $false){$checkBox1.Checked = $false}
        if ($checkBox2.Checked -eq $false -and $checkBox3.Checked -eq $true){$checkBox1.Checked = $false}
        if ($checkBox1.Checked -eq $true -and $checkBox3.Checked -eq $false){$checkBox1.Checked = $false}
    }
    $handler_checkBox3_CheckStateChanged= 
    {
        if ($checkBox2.Checked -eq $true -and $checkBox3.Checked -eq $false){$checkBox1.Checked = $false}
        if ($checkBox2.Checked -eq $false -and $checkBox3.Checked -eq $true){$checkBox1.Checked = $false}
        if ($checkBox1.Checked -eq $true -and $checkBox3.Checked -eq $false){$checkBox1.Checked = $false}
    }


    • Als Antwort markiert MCMaggi Dienstag, 19. Juli 2016 11:27
    Dienstag, 19. Juli 2016 11:10

Alle Antworten

  • Hi,

    das Problem ist, das "Add_CheckStateChanged" auch getriggert wird, wenn du nur den Status der Box veränderst, ohne die Box selbst anzuklicken.

    Ich würde die Zeilen:

    $checkBox1.Add_CheckStateChanged($handler_checkBox1_CheckStateChanged)
    $checkBox2.Add_CheckStateChanged($handler_checkBox2_CheckStateChanged)
    $checkBox3.Add_CheckStateChanged($handler_checkBox3_CheckStateChanged)
    

    durch

    $checkBox1.add_Click($handler_checkBox1_CheckStateChanged)
    $checkBox2.add_Click($handler_checkBox2_CheckStateChanged)
    $checkBox3.add_Click($handler_checkBox3_CheckStateChanged)

    ersetzen und damit das add_Click Event benutzen. Dein Event Block sieht das so aus:

    $handler_checkBox1_CheckStateChanged= 
    {
        if ($checkBox2.Checked -eq $false -and $checkBox3.Checked -eq $false){
            $checkBox2.Checked = $true
            $checkBox3.Checked = $true
        }
    }
    $handler_checkBox2_CheckStateChanged= 
    {
        if ($checkBox2.Checked -eq $true -and $checkBox3.Checked -eq $false){$checkBox1.Checked = $false}
        if ($checkBox2.Checked -eq $false -and $checkBox3.Checked -eq $true){$checkBox1.Checked = $false}
        if ($checkBox1.Checked -eq $true -and $checkBox3.Checked -eq $false){$checkBox1.Checked = $false}
    }
    $handler_checkBox3_CheckStateChanged= 
    {
        if ($checkBox2.Checked -eq $true -and $checkBox3.Checked -eq $false){$checkBox1.Checked = $false}
        if ($checkBox2.Checked -eq $false -and $checkBox3.Checked -eq $true){$checkBox1.Checked = $false}
        if ($checkBox1.Checked -eq $true -and $checkBox3.Checked -eq $false){$checkBox1.Checked = $false}
    }


    • Als Antwort markiert MCMaggi Dienstag, 19. Juli 2016 11:27
    Dienstag, 19. Juli 2016 11:10
  • Eigentlich ganz einfach... :D

    Danke vielmals :))

    Grüße

    Dienstag, 19. Juli 2016 11:28