3

该按钮仅在我单击它后才会禁用。一旦 NumericUpDown 控件中的值增加到特定点以上,我希望它在没有任何交互的情况下禁用。我已经护目镜,但没有找到答案,这是我的代码:

    private void mybtn_Click(object sender, EventArgs e)
    {            
        if (numericud.Value > myArray[r, c] || myArray[r, c] == 0)
            DisableButton(mybtn);            
        myArray[r, c] = CalcNewMax(myArray[r, c]);
        OpenNewForm();
    }

    private void DisableButton(Button selectedbtn)
    {
        selectedbtn.Enabled = false;
    }

非常感谢任何帮助,谢谢!

4

2 回答 2

3

这是一些适用于特定示例的代码。

我没有看到您的代码有任何具体问题,所以如果我是您,我会设置一些断点以确保您的条件得到满足,并且一切都按照您的想法进行。

namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void numericUpDown1_ValueChanged(object sender, EventArgs e)
        {
            if (numericUpDown1.Value > 5)
                button1.Enabled = false;
        }
    }
}

作为附加说明,numericUpDown1_ValueChanged当您在设计器中双击 UpDown 控件时,Visual Studio 将自动生成处理程序

于 2012-11-07T19:48:20.450 回答
1

我认为您在单击按钮时调用方法“mybtn_Click()”,而不是在数字上下变化时调用该方法。在按钮属性的“事件”部分中,检查“MouseClick”事件是否设置为调用“mybtn_Click()”。

然后转到数值上下属性的“事件”部分,并将“ValueChanged”事件设置为调用“mybtn_Click()”。我还建议您在此之前将方法名称更改为更合适的名称。

最后,您不需要创建一个全新的方法来简单地更改按钮的 Enabled 值:只需替换该行

DisableButton(mybtn);

mybtn.Enabled = false;
于 2012-11-07T20:07:51.440 回答