Back to Devexpress

RepositoryItemCheckEdit.CheckedChanged Event

windowsforms-devexpress-dot-xtraeditors-dot-repository-dot-repositoryitemcheckedit-3e1139bd.md

latest7.3 KB
Original Source

RepositoryItemCheckEdit.CheckedChanged Event

Fires after the CheckEdit.Checked property has been changed.

Namespace : DevExpress.XtraEditors.Repository

Assembly : DevExpress.XtraEditors.v25.2.dll

NuGet Package : DevExpress.Win.Navigation

Declaration

csharp
[DXCategory("Events")]
public event EventHandler CheckedChanged
vb
<DXCategory("Events")>
Public Event CheckedChanged As EventHandler

Event Data

The CheckedChanged event's data class is EventArgs.

Example

This example demonstrates how to programmatically create two check editors, initialize their properties and assign the same handler for their CheckEdit.CheckedChanged events. The created check editors will be used to control the visibility and availability of a standard button control. The example implies that the button is already placed onto a form.

Changing the check state of the first check editor affects both the button’s visibility and the second check editor’s availability. The second check editor specifies the availability of the button for end-users.

The image below displays the example application.

csharp
using DevExpress.XtraEditors;
using DevExpress.Utils;

private void CreateCheckEditors() {
    // creating and initializing the first check editor
    CheckEdit chEdit1 = new CheckEdit();
    chEdit1.Properties.Caption = "Hide Button";
    chEdit1.Name = "chEdit1";
    chEdit1.Location = new System.Drawing.Point(6, 35);
    chEdit1.Width = 100;
    // setting the editor's check state depending upon the button's visibility
    if (!(button1.Visible)) chEdit1.Checked = true;
    // assigning a handler for the CheckChanged event of the first check editor
    chEdit1.CheckedChanged += new EventHandler(CheckedChanged);
    this.Controls.Add((Control)chEdit1);

    // creating and initializing the second check editor
    CheckEdit chEdit2 = new CheckEdit();
    chEdit2.Properties.Caption = "Disable Button";
    chEdit2.Name = "chEdit2";
    chEdit2.Location = new System.Drawing.Point(6, 55);
    chEdit2.Width = 100;
    // setting the editor's check state depending upon the button's availability
    if (!(button1.Enabled)) chEdit2.Checked = true;
    if (!(button1.Visible)) chEdit2.Enabled = false;
    // assigning a handler for the CheckChanged event of the second check editor
    chEdit2.CheckedChanged += new EventHandler(CheckedChanged);
    this.Controls.Add((Control)chEdit2);
}

private void CheckedChanged(object sender, System.EventArgs e) {
    CheckEdit edit = sender as CheckEdit;
    switch (edit.Checked) {
        case true:
            if (edit == GetCheckEdit("chEdit1")){
                // hiding the button
                button1.Visible = false;
                // disabling the second check editor
                GetCheckEdit("chEdit2").Enabled = false;
            }
            else if (edit == GetCheckEdit("chEdit2")){
                // enabling the button
                button1.Enabled = false;
            }
            break;
        case false:
            if (edit == GetCheckEdit("chEdit1")){
                // showing the button
                button1.Visible = true;
                // enabling the second check editor
                GetCheckEdit("chEdit2").Enabled = true;
            }
            else if (edit == GetCheckEdit("chEdit2")){
                // disabling the button
                button1.Enabled = true;
            }
            break;
    }
}

private CheckEdit GetCheckEdit(string editName){
    foreach(Control control in this.Controls){
        if ((control is CheckEdit) && (control.Name == editName)) 
            return control as CheckEdit;
    }
    return null;
}
vb
Imports DevExpress.XtraEditors
Imports DevExpress.Utils

Private Sub CreateCheckEditors()
    ' creating and initializing the first check editor
    Dim ChEdit1 As New CheckEdit()
    ChEdit1.Properties.Caption = "Hide Button"
    ChEdit1.Name = "ChEdit1"
    ChEdit1.Location = New System.Drawing.Point(6, 35)
    ChEdit1.Width = 100
    ' setting the editor's check state depending upon the button's visibility
    If Not Button1.Visible Then ChEdit1.Checked = True
    ' assigning a handler for the CheckChanged event of the first check editor
    AddHandler ChEdit1.CheckedChanged, AddressOf CheckedChanged
    Me.Controls.Add(CType(ChEdit1, Control))

    ' creating and initializing the second check editor
    Dim ChEdit2 As New CheckEdit()
    ChEdit2.Properties.Caption = "Disable Button"
    ChEdit2.Name = "ChEdit2"
    ChEdit2.Location = New System.Drawing.Point(6, 55)
    ChEdit2.Width = 100
    ' setting the editor's check state depending upon the button's availability
    If Not Button1.Enabled Then ChEdit2.Checked = True
    If Not Button1.Visible Then ChEdit2.Enabled = False
    ' assigning a handler for the CheckChanged event of the second check editor
    AddHandler ChEdit2.CheckedChanged, AddressOf CheckedChanged
    Me.Controls.Add(CType(ChEdit2, Control))
End Sub

Private Sub CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs)
    Dim Edit As CheckEdit = CType(sender, CheckEdit)
    Select Case Edit.Checked
        Case True
            If Edit Is GetCheckEdit("ChEdit1") Then
                ' hiding the button
                Button1.Visible = False
                ' disabling the second check editor
                GetCheckEdit("ChEdit2").Enabled = False
            ElseIf Edit Is GetCheckEdit("ChEdit2") Then
                ' enabling the button
                Button1.Enabled = False
            End If
        Case False
            If Edit Is GetCheckEdit("ChEdit1") Then
                ' showing the button
                Button1.Visible = True
                ' enabling the second check editor
                GetCheckEdit("ChEdit2").Enabled = True
            ElseIf Edit Is GetCheckEdit("chEdit2") Then
                ' disabling the button
                Button1.Enabled = True
            End If
    End Select
End Sub

Private Function GetCheckEdit(ByVal editName As String) As CheckEdit
    Dim Control As Control
    For Each Control In Me.Controls
        If TypeOf Control Is CheckEdit And Control.Name = editName Then 
            Return CType(Control, CheckEdit)
        EndIf
    Next
    Return Nothing
End Function

See Also

CheckedChanged

Checked

RepositoryItemCheckEdit Class

RepositoryItemCheckEdit Members

DevExpress.XtraEditors.Repository Namespace