你们都知道“你们有了新的答案!”SO上的通知栏。我希望同样的东西以一种形式出现,最好是一样平滑。有没有简单的方法?或者我必须完全自己创建这个?
我的搜索没有得到任何好的结果,只有在系统通知区域有很多进度条和弹出窗口,但这不是我要找的。
我要显示的消息属于一个表单,而不是整个应用程序
发布于 2010-04-24 02:11:04
在表单中创建两个面板,一个停靠在顶部的通知面板,以及一个锚定在顶部的内容面板。在Form.Load中,将通知面板的高度设置为零。不要在设计视图中将高度设置为零,您将无法单击通知面板进行编辑。
然后,当您收到通知时,绘制通知面板中的内容并创建一个System.Windows.Form.Timer,它每隔几十毫秒左右将通知面板的高度增加几个像素。当面板达到所需高度时停止。对负值高度执行相同的操作以隐藏面板。
这不需要重新绘制或重新计算任何东西的大小或位置,也不透支任何东西,看起来很光滑。我已经做到了这一点,并且它起作用了。
发布于 2010-04-24 00:50:44
您可以简单地从窗体的工作区顶部向下放置一个面板。
在定时循环中增加面板的y坐标。面板一开始是不可见的,然后慢慢变得可见。(该面板将从-panel.height开始,并逐渐下降到0。)
发布于 2010-04-24 00:50:05
如果您希望将其限制到特定的表单,那么在表单上放置一个Panel并将其Dock设置为DockStyle.Top,然后放置一个描述标签和一个隐藏该描述的按钮,这应该是非常简单的。
https://stackoverflow.com/questions/2700364
复制相似问题