首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用NumericUpDown重绘问题

用NumericUpDown重绘问题
EN

Stack Overflow用户
提问于 2014-08-18 14:09:47
回答 2查看 509关注 0票数 0

嗨,我对NumericUpDown控件有一个奇怪的重绘问题。如果我在同一位置有另一个控件,并将其Visible属性设置为false,而将NumericUpDownVisible属性设置为true,则显示NumericUpDown时不带边框,其他控件的部分可见于后台(即使其Visible属性为false)。即使调用RefreshNumericUpDown或父容器也不会改变任何事情。如果背景中的控件是TextBox,则NumericUpDown将正确显示,但我假设是这样的,因为边框是相等的,因此它只看起来是正确绘制的。

这是NumericUpDown控件的错误吗?我怎么才能修好它?

谢谢你帮忙。

编辑:这是一个截图。我只需更改ComboBox的可见属性和NumericUpDown依赖于RadioButtonsChecked属性。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-19 10:39:01

我终于发现了问题。我使用了来自CodeProject的覆盖控件,它允许我在整个表单上绘制原语。尽管我很少使用它,但它仍然会改变子控件的绘制方式。虽然其他控件运行良好,但NumericUpDown似乎存在一些问题。

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

票数 1
EN

Stack Overflow用户

发布于 2014-08-18 14:29:10

代码语言:javascript
复制
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();
}

对于您的代码,只需添加:

代码语言:javascript
复制
numericUpDown1.BringToFront();

问题在于,您已经向面板中添加了一个numericupdown,但它并不完全在面板中,您必须将它放在前面,以查看数字下降的完整视图。

即使没有代码,您也可以这样做。照照片做就行了。

如果你知道答案,请告诉我。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25365375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档