Event eines Controls auslösen?? (VB.NET)



  • hi ihr,

    Habe eine Checkboxcontrol, und möchte gerne dessen event "CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs)" auslösen im code.
    Dachte eigentlich das diese Event durch dne aufruf "CheckBox1.checked= true" geworfen wird, aber anscheinden nich. Wie kann ich diese von hand schmeisen?

    Danke



  • this.checkBox1.CheckState = CheckState.Checked;



  • funmtioniert nicht:

    es wird weder das "CheckeStateChanged" Event bzw. das "Checkedchange" event aufgerufen!



  • Das geht gar nicht und ist genau auch einer der Unterschiede zwischen events und multicast-delegates. Es widerspricht auch total dem Observer-Pattern. Du hast allerdings in diesem konkreten Fall die Möglichkeit, von der Checkbox abzuleiten und die On... Methode aufzurufen. Ist aber die Frickel-Lösung, ich würde lieber den Code, der durch das Event ausgelöst werden soll direkt aufrufen.



  • klar funktioniert das, hab's für Dich sogar getestet. Poste mal Deinen Code.



  • Das Event das ausgeführt werden soll:

    Private Sub AlternateMaster_CheckStateChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles AlternateMaster.CheckStateChanged
            'Sub Controls der gruppe entweder aktivieren oder deaktiviern
            For Each Ctrl As Control In Me.Alternates.Controls
                If Not Ctrl.Handle.Equals(Me.AlternateMaster.Handle) Then
                    Ctrl.Enabled = Me.AlternateMaster.Checked()
                End If
            Next
            'Ensprichedne Slave des Modul dekativieren wenn Master unchecked
            Modulprops.PropertyVal("ID_ALT") = Me.AlternateMaster.Checked
        End Sub
    

    Konstruktor der Klasse, in dem das Event ausgelöst werden soll:

    Public Sub New(ByVal SysID As Integer, ByVal ModID As Integer)
            MyBase.New()
           Me.AlternateMaster.CheckState= Me.AlternateMaster.Checked
    End Sub
    


  • Du nutzt das falsche Event, so kann's net funktionieren. 🙂

    Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
            MessageBox.Show("funzt")
        End Sub
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Me.CheckBox1.CheckState = CheckState.Checked
        End Sub
    

Anmelden zum Antworten