一开始做的时候,觉得这个太简单了。真心做的时候还是遇到了不少的坑啊。

1)循环播放新闻内容,建议使用showdialog(),不要用show(),不太好控制前后之间的停顿。

2)窗口的初始位置为有下角,但是一定记得把窗口的属性starposition 设置成mannul.调试了好久,真是崩溃

int x = Screen.PrimaryScreen.WorkingArea.Width - this.Width-3;

int y = Screen.PrimaryScreen.WorkingArea.Height - this.Height-3;

this.Location = new Point(x, y);//设置窗体在屏幕右下角显示

3)之前为了客户端偷懒方便,服务端请求的结果直接返回页面地址,然后客户端用webrowse就可以显示新闻内容啦。这是个不错的思路,毕竟FORM上调整样式比较漂亮比较困难,而且升级后台服务要远比升级客户端要来的简单。

思路:

1 主程序main(主窗口)增加timer事件,隔一段时间去请求新闻内容。可以和服务器之间定义一个JASON接口。例如:返回 新增内容,标题等

2 新建新闻tip窗口, 新建定期关闭事件,显示一端时间后关闭窗口

3 主窗口的timer事件中,请求到内容后,进行判断,如果有数据,则就调用tip的方法,传人新闻内容 ,显示窗口即可。

[DllImport("user32")]

private static extern bool AnimateWindow(IntPtr hwnd, int dwTime, int dwFlags);

//下面是可用的常量,根据不同的动画效果声明自己需要的

private const int AW_HOR_POSITIVE = 0x0001;//自左向右显示窗口,该标志可以在滚动动画和滑动动画中使用。使用AW_CENTER标志时忽略该标志

private const int AW_HOR_NEGATIVE = 0x0002;//自右向左显示窗口,该标志可以在滚动动画和滑动动画中使用。使用AW_CENTER标志时忽略该标志

private const int AW_VER_POSITIVE = 0x0004;//自顶向下显示窗口,该标志可以在滚动动画和滑动动画中使用。使用AW_CENTER标志时忽略该标志

private const int AW_VER_NEGATIVE = 0x0008;//自下向上显示窗口,该标志可以在滚动动画和滑动动画中使用。使用AW_CENTER标志时忽略该标志该标志

private const int AW_CENTER = 0x0010;//若使用了AW_HIDE标志,则使窗口向内重叠;否则向外扩展

private const int AW_HIDE = 0x10000;//隐藏窗口

private const int AW_ACTIVE = 0x20000;//激活窗口,在使用了AW_HIDE标志后不要使用这个标志

private const int AW_SLIDE = 0x40000;//使用滑动类型动画效果,默认为滚动动画类型,当使用AW_CENTER标志时,这个标志就被忽略

private const int AW_BLEND = 0x80000;//使用淡入淡出效果

private void timerMoveDown_Tick(object sender, EventArgs e)

{

timerMoveDown.Stop();

AnimateWindow(this.Handle, 1000, AW_BLEND | AW_HIDE);

this.Close();

}

public void refresh()

{

//这里显示新闻内容

AnimateWindow(this.Handle, 2000, AW_SLIDE | AW_ACTIVE | AW_VER_NEGATIVE);

timerMoveDown.Start();

}

转自:http://www.jianshu.com/p/a6f6ee4c071a

最新文章

  1. prometheus监控系统
  2. 从CIO、CEO、CFO、COO...到CVO 这22个你了解几个? (史上最完整版)
  3. JSONArray遍历
  4. gis 导出 dwg,shp
  5. [div+css布局]命名规则
  6. struts2指定集合元素的泛型
  7. winform 上传
  8. windows 下 使用codeblocks 实现C语言对python的扩展
  9. Qt之XML(一) DOM
  10. 10个经典的Java面试题
  11. mysql 日期比较
  12. 购物车Demo,前端使用AngularJS,后端使用ASP.NET Web API(2)--前端,以及前后端Session
  13. leetcode_最长公共前缀
  14. Session累计用户数据列表
  15. nginx负载 发向代理配置文件参考
  16. HTML5 拖放(Drag 和 Drop)功能开发——基础实战
  17. Uni-app页面生命周期
  18. 高吞吐低延迟Java应用的垃圾回收优化
  19. snopy 数据库简介
  20. 基于esky实现python应用的自动升级

热门文章

  1. Git学习总结(9)——如何构建你自己的 Git 服务器
  2. UltraEdit正則表達式介绍及实例
  3. [Python]threading local 线程局部变量小測试
  4. poj 3311 Hie with the Pie (TSP问题)
  5. HDFS HA架构以及源代码引导
  6. 110个经常使用Oracle函数总结
  7. hdoj--3592--World Exhibition(差分约束)
  8. [JZOJ 5875] [NOIP2018提高组模拟9.20] 听我说,海蜗牛 解题报告(BFS+二分)
  9. ajax的异步请求小结
  10. Django REST framework 自定义字段