WinForm控件是透明的,无法正常显示

时间:2013-11-16 22:11:13

标签: c# winforms

当表单加载时,我希望它显示加载图像(在图片框中)和带有一些文本的标准Windows标签。但是,我看到的只是白色的盒子,有时我看到下面的另一个形式。如何正确显示图像和标签。

我在表单加载时尝试将AllowTransparency设置为false,并将表单的透明度键设置为其他颜色,但没有任何效果。

该项目是C#.Net v3.5(也尝试过v4和v4.5)。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

首先,您无法显示图像,忙碌等待,然后更改图像 - 这将永远不会重绘任何内容,从而导致您描述的症状。等待"等待"您需要将控制权返回到主应用程序循环,以便它可以继续处理消息(例如,处理窗口的重绘请求)。做你想做的事情的一种方法是显示你的初始状态(启动画面),然后使用计时器稍后再回电,将显示更改为你的第二状态。

您面临的下一个问题是使用具有透明度的表单控件。大多数控件都会对待"透明" as"用你的父控件颜色填充你的背景",这不是你想要的。一个简单的方法是实现一个Paint处理程序并为自己绘制图像和文本 - 这使您可以更好地控制显示器的外观,并且还可以让您获得更清晰的重绘(没有闪烁或由其引起的其他问题)显示器正在建立,但在几个控件中按位)

最后,考虑将您的初始屏幕显示实现为在加载过程中显示在主窗体上方的单独控件/表单,因为这样可以轻松地覆盖"在您的主表单上,无需更改其设计。

答案 1 :(得分:-1)

formObjectName.Refresh()

之后写下formObjectName.Show()