troubleshooting Question

Need to enable NumericUpDown if CheckBox is check - Getting error Non-invocable member ... cannot be used like a method

Avatar of Tim Word
Tim WordFlag for United States of America asked on
C#.NET Programming
3 Comments2 Solutions179 ViewsLast Modified:
Upon form load code:

_checkBoxs = new[] { cbXLight, cbLight, cbMedium, cbHeavy, cbXHeavy, cbXXHeavy, cbXXXHeavy };
_minimumsNumericUpDowns = new[] { null, nLightMin, nMediumMin, nHeavyMin, nXHeavyMin, nXXHeavyMin, nXXXHeavyMin };
_maximumsNumericUpDowns = new[] { nXLightMax, nLightMax, nMediumMax, nHeavyMax, nXHeavyMax, nXXHeavyMax, null };

My method:

// Private Fields
private CheckBox[] _checkBoxs;
private NumericUpDown[] _minimumsNumericUpDowns;
private NumericUpDown[] _maximumsNumericUpDowns;

private void CheckBox_NumericState(object sender, EventArgs e)
{

    // disable everything
    DisableNumericUpDowns();

    // see if more than one checkbox is checked:
    var numChecked = _checkBoxs.Count(cb => cb.Checked);

    // enable things if more than one item is checked:
    if (numChecked <= 1) return;
    // find the smallest and enable its max:
    var smallest = -1;
    for (var i = 0; i < _checkBoxs.Length; i++)
    {
        if (!_checkBoxs(i).Checked) continue;
        if (!(_maximumsNumericUpDowns(i) == null))
        {
            _maximumsNumericUpDowns(i).Enabled = true;
        }
        smallest = i;
        break;
    }

    // find the largest and enable its min:
    var largest = -1;
    for (var i = _checkBoxs.Length - 1; i >= 0; i--)
    {
        if (_checkBoxs(i).Checked)
        {
            if (!(_minimumsNumericUpDowns(i) == null))
            {
                _minimumsNumericUpDowns(i).Enabled = true;
            }
            largest = i;
            break;
        }
    }

    // enable both for everything between smallest and largest:
    var tempVar = largest - 1;
    for (var i = (smallest + 1); i <= tempVar; i++)
    {
        if (!_checkBoxs(i).Checked) continue;
        if (!(_minimumsNumericUpDowns(i) == null))
        {
            _minimumsNumericUpDowns(i).Enabled = true;
        }
        if (!(_maximumsNumericUpDowns(i) == null))
        {
            _maximumsNumericUpDowns(i).Enabled = true;
        }
    }
}

Code to disable numerics:

private void DisableNumericUpDowns()
{
    // disable everything:
    foreach (var n in _minimumsNumericUpDowns)
    {
        if (n != null)
        {
            n.Enabled = false;
        }
    }
    foreach (var n in _maximumsNumericUpDowns)
    {
        if (n != null)
        {
            n.Enabled = false;
        }
    }
}

Error I get is:
Non-invocable member 'xxx' cannot be used like a method. The xxx is for each  _chechBoxs, _minimumsNumericUpDowns, and
_maximumsNumericUpDowns  in all the for-loops.  I don't understand what I am doing wrong.
ASKER CERTIFIED SOLUTION
Dmitry G
Senior Developer

Our community of experts have been thoroughly vetted for their expertise and industry experience.

Join our community to see this answer!
Unlock 2 Answers and 3 Comments.
Start Free Trial
Learn from the best

Network and collaborate with thousands of CTOs, CISOs, and IT Pros rooting for you and your success.

Andrew Hancock - VMware vExpert
See if this solution works for you by signing up for a 7 day free trial.
Unlock 2 Answers and 3 Comments.
Try for 7 days

”The time we save is the biggest benefit of E-E to our team. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange.

-Mike Kapnisakis, Warner Bros