A WinForm application that filters users
I don't think that checking the state of the box twice is an issue.  However, I do think this could be written in a more general way that would be easier to add more boxes / fields to later.  For example, sticking with the current class structure:

bool FieldMatchesFilterGroup(string field, params CheckBox[] group) 
{
    return group.All(box =&gt; !box.Checked) 
        || group.Any(box =&gt; box.Checked &amp;&amp; box.Text == field);        
}

bool UserMatchesFilters(SomeUser user)
{
    return FieldMatchesFilterGroup(user.color, checkBoxRed, checkBoxBlue)
        &amp;&amp; FieldMatchesFilterGroup(user.number, checkBoxOne, checkBoxTwo);
}


This could be made considerably more general, but at the cost of also becoming more complex, so whether that's worth doing depends on how you plan to use this code.  The FieldMatchesFilterGroup method above is using LINQ, but you could do the same thing with a foreach loop:

bool FieldMatchesFilterGroup(string field, params CheckBox[] group)
{
    bool any = false, found = false;
    foreach(var box in group) 
    {
        if(box.Checked)
        {
            any = true;
            found |= (box.Text == field);
        }
    }
    return !any || found;
}


Also, just as a style thing, the typical C# naming convention is UpperCamelCase for methods.