C# NumericUpDown控件的Up-Down按钮赢得';隐藏

C# NumericUpDown控件的Up-Down按钮赢得';隐藏,c#,visual-studio-2010,hide,draw,numericupdown,C#,Visual Studio 2010,Hide,Draw,Numericupdown,所以我有一个数字上下控件,我想隐藏上下(递增和递减)按钮。到目前为止,我已经在value changed事件中设置了它,用于测试目的。基本上,一旦值大于3,按钮就应该隐藏起来。代码如下所示: private void numericUpDown1_ValueChanged(object sender, EventArgs e) { if (numericUpDown1.Value > 3) { //numericUpD

所以我有一个数字上下控件,我想隐藏上下(递增和递减)按钮。到目前为止,我已经在value changed事件中设置了它,用于测试目的。基本上,一旦值大于3,按钮就应该隐藏起来。代码如下所示:

    private void numericUpDown1_ValueChanged(object sender, EventArgs e)
    {
        if (numericUpDown1.Value > 3)
        {
            //numericUpDown1.Controls[0].Visible = false;
            numericUpDown1.Controls[0].Hide();
            numericUpDown1.Refresh();
        }
    }
它是有效的。。。某种程度上。您会看到按钮被禁用,如中所示,我无法再单击它们,但它们仍然清晰可见。它看起来像这样:

    private void numericUpDown1_ValueChanged(object sender, EventArgs e)
    {
        if (numericUpDown1.Value > 3)
        {
            //numericUpDown1.Controls[0].Visible = false;
            numericUpDown1.Controls[0].Hide();
            numericUpDown1.Refresh();
        }
    }

文本框只是另一个测试的一部分,在这个测试中,基本上你取numericupdown控件的值,然后从10中减去它,答案在文本框中


正如您所看到的,我在过去曾尝试设置visible属性,甚至尝试强制整个控件重新绘制自己,但此时似乎没有任何效果。如有任何建议,将不胜感激。非常感谢您。

仅为澄清起见,您是否想隐藏“向上”和“向下”控件,因为您想以某种方式阻止用户将NumericUpDown控件的值增加到特定值?因为如果是这样的话,你就不能使用NumericUpDown控件的
Maximum
属性来完成这项工作吗

此外,如果值(在您的情况下)不再大于3,是否有办法取消隐藏按钮

更新#1

这只是解决您的问题的一种方法。我试着像上面的例子那样隐藏上下按钮,但也没有得到结果,隐藏控件只在控件实际绘制之前起作用

我所做的是,我从上面的例子中添加了一个文本框,它将接收numericupdown控件的值,并使numericupdown控件的宽度足够小,足以显示updown按钮。见下图

蓝色控件是一个文本框,红色控件是数字向上向下,绿色控件是另一个文本框

private void greenTextBox_TextChanged(object sender, EventArgs e)
{
    if (Convert.ToInt32(textBox2.Text.Trim()) <= 0)
    {
        redNumericUpDown.Visible = false;
        redNumericUpDown.Refresh();
    }
    else
    {
        redNumericUpDown.Visible = true;
        redNumericUpDown.Refresh();
    }
}  

private void redNumericUpDown_ValueChanged(object sender, EventArgs e)
{
    blueTextBox.Text = redNumericUpDown.Value.ToString();
    greenTextBox.Text = (10 - redNumericUpDown.Value).ToString();
}
private void greenTextBox\u TextChanged(对象发送者,事件参数e)
{

if(转换.ToInt32(textBox2.Text.Trim())为什么不干脆禁用按钮呢?在禁用的情况下,不存在与不正确的绘画相关的问题。这可能会起作用,但对我来说并不美观。我宁愿它们在没有任何可用方法的情况下不可见,也不愿它们有选项但不可点击。很好的建议,但我确实这么做了我不认为这对我正在做的事情有效。你看,长期以来,我希望当数字上下控件下的文本框中的数字达到0时,按钮变得不可见。虽然我可以设置最大值10,但如果我希望文本框的数字受到多个数字上下的影响,那么一个可能是4,另一个可能是5,还有一个可能是3d可以是1,因为它们加起来都是10,所以我想在这一点上使按钮不可见。至于为什么我把它设置为不大于3,这只是为了测试的目的,所以我只需点击3次。如果使用其他数字上下按钮,它们的行为是否与上面示例中的数字上下按钮相同?是的,上下按钮b当“计数器”打开时,必须隐藏按钮也达到零。我的问题仍然是,我需要找到一种方法,使用隐藏按钮强制正确重画numericupdfown控件。这并不能回答问题。若要评论或要求作者澄清,请在他们的帖子下方留下评论-您可以随时对自己的帖子发表评论,一旦您有了评论ufficient您将能够。@J0e3gan,thanx作为提醒,不会再次发生^_^