【C#】【VB.NET】CheckedListBoxの全てのチェックボックスをチェックする

f:id:ktts:20190816120708p:plain

CheckedListBoxの全てのチェックボックスをチェックする手法を調べたのでメモ

参考サイト
stackoverflow.com

C#の場合

/// <summary>
/// ボタンをクリックするとすべてのチェックボックスをチェックします
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void ButtonCheckAll_Click(object sender, EventArgs e)
{
    for (int i = 0; i < checkedListBox1.Items.Count; i++)
    {
        checkedListBox1.SetItemChecked(i, true);
    }
}

VB.NETの場合

''' <summary>
''' ボタンをクリックするとすべてのチェックボックスをチェックします
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
Private Sub ButtonCheckAll_Click(sender As Object, e As EventArgs) Handles ButtonCheckAll.Click
    For index = 0 To CheckedListBox1.Items.Count - 1
        CheckedListBox1.SetItemChecked(index, True)
    Next
End Sub


頻繁に使用する場合は、拡張メソッドを定義して利用するのがいいでしょう
C#の場合

static class ExtensionMethods
{
    /// <summary>
    /// 全てのチェックボックスをチェックする拡張メソッド
    /// </summary>
    /// <param name="source">CheckedListBox</param>
    /// <param name="value">チェック値</param>
    public static void CheckAllCheckBoxes(this CheckedListBox source, bool value)
    {
        for (int i = 0; i < source.Items.Count; i++)
        {
            source.SetItemChecked(i, value);
        }
    }
}

VB.NETの場合

Module ExtensionMethods
    ''' <summary>
    ''' 全てのチェックボックスをチェックする拡張メソッド
    ''' </summary>
    ''' <param name="source">CheckedListBox</param>
    ''' <param name="value">チェック値</param>
    <System.Runtime.CompilerServices.Extension()>
    Public Sub CheckAllCheckBoxes(source As CheckedListBox, value As Boolean)
        For index = 0 To source.Items.Count - 1
            source.SetItemChecked(index, value)
        Next
    End Sub
End Module


拡張メソッドの使用例
C#の場合

// 全てのチェックボックスをチェックする
checkedListBox1.CheckAllCheckBoxes(true);

VB.NETの場合

' 全てのチェックボックスをチェックする
CheckedListBox1.CheckAllCheckBoxes(True)