Avatar of Tim Word
Tim Word
Flag for United States of America asked on

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

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 };

Open in new window


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;
        }
    }
}

Open in new window


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;
        }
    }
}

Open in new window


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.
C#.NET Programming

Avatar of undefined
Last Comment
Tim Word

8/22/2022 - Mon
ASKER CERTIFIED SOLUTION
Dmitry G

THIS SOLUTION ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
GET A PERSONALIZED SOLUTION
Ask your own question & get feedback from real experts
Find out why thousands trust the EE community with their toughest problems.
SOLUTION
p_davis

THIS SOLUTION ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
GET A PERSONALIZED SOLUTION
Ask your own question & get feedback from real experts
Find out why thousands trust the EE community with their toughest problems.
Tim Word

ASKER
Found that before I saw your answer, but thanks for your help!
Your help has saved me hundreds of hours of internet surfing.
fblack61