嗨,我对NumericUpDown控件有一个奇怪的重绘问题。如果我在同一位置有另一个控件,并将其Visible属性设置为false,而将NumericUpDown的Visible属性设置为true,则显示NumericUpDown时不带边框,其他控件的部分可见于后台(即使其Visible属性为false)。即使调用Refresh的NumericUpDown或父容器也不会改变任何事情。如果背景中的控件是TextBox,则NumericUpDown将正确显示,但我假设是这样的,因为边框是相等的,因此它只看起来是正确绘制的。
这是NumericUpDown控件的错误吗?我怎么才能修好它?
谢谢你帮忙。
编辑:这是一个截图。我只需更改ComboBox的可见属性和NumericUpDown依赖于RadioButtons的Checked属性。

发布于 2014-08-19 10:39:01
我终于发现了问题。我使用了来自CodeProject的覆盖控件,它允许我在整个表单上绘制原语。尽管我很少使用它,但它仍然会改变子控件的绘制方式。虽然其他控件运行良好,但NumericUpDown似乎存在一些问题。
也许将来也会有人有同样的问题。因此,这里是我使用的CodeProject项目的链接:http://www.codeproject.com/Articles/26071/Draw-Over-WinForms-Controls。
发布于 2014-08-18 14:29:10
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,但它并不完全在面板中,您必须将它放在前面,以查看数字下降的完整视图。
即使没有代码,您也可以这样做。照照片做就行了。



如果你知道答案,请告诉我。
https://stackoverflow.com/questions/25365375
复制相似问题