使用NumericUpDown重绘问题

时间:2014-08-18 14:09:47

标签: c# winforms numericupdown

嗨我对NumericUpDown控件有一个奇怪的重绘问题。如果我在同一位置有另一个控件,并将其Visible属性设置为false,并将Visible的{​​{1}}属性设置为NumericUpDown true如果没有边框,则其他控件的某些部分在后台显示(即使其NumericUpDown属性为Visible)。即使拨打false的{​​{1}}或父容器也不会改变任何内容。如果背景中的控件是Refresh NumericUpDown正确显示,但我认为这是因为边框相等,因此它看起来只是正确绘制。< / p>

这是TextBox控件的错误吗?我该如何解决?

感谢您的帮助。

编辑:这是截图。我只是更改了NumericUpDown的{​​{1}}和NumericUpDown属性ComboBox的可见属性。

enter image description here

2 个答案:

答案 0 :(得分:1)

private void button1_Click_1(object sender, EventArgs e)
{
    Panel p = new Panel();
    p.Location = new Point(10, 10);
    p.Height = 200;
    p.Width = 200;
    p.BorderStyle = BorderStyle.Fixed3D;
    Controls.Add(p);
    NumericUpDown nud = new NumericUpDown();
    nud.Location = new Point(150, 150);
    nud.Height = 100;
    nud.Width = 100;
    Controls.Add(nud);
    nud.BringToFront();
}

为您的代码添加:

numericUpDown1.BringToFront();

问题是因为您已经在面板中添加了一个numericUpdown,但它并没有完全位于面板内部,您必须将它带到前面才能看到完整的数字下拉视图。

即使没有代码,你也可以这样做。就像照片一样。

enter image description here enter image description here enter image description here

如果你得到答案,请告诉我。

答案 1 :(得分:1)

我终于找到了问题。我使用了CodeProject的叠加控件,它允许我在整个表单上绘制基元。尽管我很少使用它,但它仍然会改变绘制儿童控件的方式。虽然其他控件工作正常,NumericUpDown似乎有一些问题。

将来可能有人会遇到同样的问题。因此,这里是我使用的CodeProject项目的链接:http://www.codeproject.com/Articles/26071/Draw-Over-WinForms-Controls