1. namespace DevExpress.Utils
  2. {
  3. using DevExpress.LookAndFeel;
  4. using DevExpress.Skins;
  5. using DevExpress.Utils.Drawing;
  6. using DevExpress.XtraEditors;
  7. using System;
  8. using System.ComponentModel;
  9. using System.Drawing;
  10. using System.Reflection;
  11. using System.Windows.Forms;
  12. public class WaitDialogForm : XtraForm
  13. {
  14. private Font boldFont;
  15. private string caption;
  16. private Font font;
  17. private PictureBox pic;
  18. private string title;
  19. public WaitDialogForm() : this("")
  20. {
  21. }
  22. public WaitDialogForm(string caption) : this(caption, "")
  23. {
  24. }
  25. public WaitDialogForm(string caption, Size size) : this(caption, "", size, null)
  26. {
  27. }
  28. public WaitDialogForm(string caption, string title) : this(caption, title, new Size(260, 50), null)
  29. {
  30. }
  31. public WaitDialogForm(string caption, string title, Size size) : this(caption, title, size, null)
  32. {
  33. }
  34. public WaitDialogForm(string caption, string title, Size size, Form parent)
  35. {
  36. this.caption = "";
  37. this.title = "";
  38. this.boldFont = new Font("Arial", 9f, FontStyle.Bold);
  39. this.font = new Font("Arial", 9f);
  40. this.caption = caption;
  41. this.title = (title == "") ? "Loading Data. Please Wait." : title;
  42. this.pic = new PictureBox();
  43. base.FormBorderStyle = FormBorderStyle.FixedDialog;
  44. base.ControlBox = false;
  45. base.ClientSize = size;
  46. if (parent == null)
  47. {
  48. base.StartPosition = FormStartPosition.CenterScreen;
  49. }
  50. else
  51. {
  52. base.StartPosition = FormStartPosition.Manual;
  53. base.Left = parent.Left + ((parent.Width - base.Width) / 2);
  54. base.Top = parent.Top + ((parent.Height - base.Height) / 2);
  55. }
  56. base.ShowInTaskbar = false;
  57. base.TopMost = true;
  58. base.Paint += new PaintEventHandler(this.WaitDialogPaint);
  59. this.pic.Size = new Size(0x10, 0x10);
  60. this.pic.Location = new Point(8, (base.ClientSize.Height / 2) - 0x10);
  61. this.pic.Image = Image.FromStream(Assembly.GetExecutingAssembly().GetManifestResourceStream("DevExpress.Utils.wait.gif"));
  62. base.Controls.Add(this.pic);
  63. base.Show();
  64. this.Refresh();
  65. }
  66. public string GetCaption()
  67. {
  68. return this.Caption;
  69. }
  70. protected override void OnClosing(CancelEventArgs e)
  71. {
  72. this.pic.Image = null;
  73. this.boldFont = null;
  74. this.font = null;
  75. base.OnClosing(e);
  76. }
  77. public void SetCaption(string newCaption)
  78. {
  79. this.Caption = newCaption;
  80. }
  81. private void WaitDialogPaint(object sender, PaintEventArgs e)
  82. {
  83. Rectangle clipRectangle = e.ClipRectangle;
  84. clipRectangle.Inflate(-1, -1);
  85. GraphicsCache cache = new GraphicsCache(e);
  86. using (StringFormat format = new StringFormat())
  87. {
  88. Brush solidBrush = cache.GetSolidBrush(LookAndFeelHelper.GetSystemColor(base.LookAndFeel, SystemColors.WindowText));
  89. format.Alignment = format.LineAlignment = StringAlignment.Center;
  90. format.Trimming = StringTrimming.EllipsisCharacter;
  91. if (base.LookAndFeel.ActiveLookAndFeel.ActiveStyle == ActiveLookAndFeelStyle.Skin)
  92. {
  93. ObjectPainter.DrawObject(cache, new SkinTextBorderPainter(base.LookAndFeel), new BorderObjectInfoArgs(null, clipRectangle, null));
  94. }
  95. else
  96. {
  97. ControlPaint.DrawBorder3D(e.Graphics, clipRectangle, Border3DStyle.RaisedInner);
  98. }
  99. clipRectangle.X += 30;
  100. clipRectangle.Width -= 30;
  101. clipRectangle.Height /= 3;
  102. clipRectangle.Y += clipRectangle.Height / 2;
  103. e.Graphics.DrawString(this.title, this.boldFont, solidBrush, clipRectangle, format);
  104. clipRectangle.Y += clipRectangle.Height;
  105. e.Graphics.DrawString(this.caption, this.font, solidBrush, clipRectangle, format);
  106. cache.Dispose();
  107. }
  108. }
  109. public override bool AllowFormSkin
  110. {
  111. get
  112. {
  113. return false;
  114. }
  115. }
  116. public string Caption
  117. {
  118. get
  119. {
  120. return this.caption;
  121. }
  122. set
  123. {
  124. this.caption = value;
  125. this.Refresh();
  126. }
  127. }
  128. }
  129. }

waitdialogform z的更多相关文章

  1. 【Python】使用torrentParser1.03对多文件torrent的分析结果

    Your environment has been set up for using Node.js 8.5.0 (x64) and npm. C:\Users\horn1>cd C:\User ...

  2. Winform使用DevExpress的WaitDialogForm画面 z

    使用了DevExpress的WaitDialogForm 在应用程序加载开始时新建一个线程,并将loading画面show起来,在应用程序画面弹出前将该线程终止. 代码: private DevExp ...

  3. Android立体旋转动画实现与封装(支持以X、Y、Z三个轴为轴心旋转)

    本文主要介绍Android立体旋转动画,或者3D旋转,下图是我自己实现的一个界面 立体旋转分为以下三种: 1. 以X轴为轴心旋转 2. 以Y轴为轴心旋转 3. 以Z轴为轴心旋转--这种等价于andro ...

  4. Z字形扫描(201412-2)

    问题描述 在图像编码的算法中,需要将一个给定的方形矩阵进行Z字形扫描(Zigzag Scan).给定一个n×n的矩阵,Z字形扫描的过程如下图所示: 对于下面的4×4的矩阵, 1 5 3 9 3 7 5 ...

  5. 【IOS】将一组包含中文的数据按照#ABC...Z✿分组

    上一篇文章[IOS]模仿windowsphone列表索引控件YFMetroListBox里面 我们一步步的实现了WindowsPhone风格的索引. 但是有没有发现,如果你要实现按照字母排序,你还得自 ...

  6. Java 压缩/ 解压 .Z 文件

    1.问题描述 公司项目有需要用 JAVA 解压 .z文件. .z 是 unix 系统常见的压缩文件. 2.源码 import com.chilkatsoft.CkUnixCompress; impor ...

  7. 中文编程语言Z语言开源正式开源!!!

    (Z语言基于.NET环境,源码中有很多高技术的代码,让更多的人知道对大家有会有很好的帮助,请管理员一点要批准放在首页) 本人实现的中文编程语言Z语言现在正式开源,采用LGPL协议. 编译器核心的网址为 ...

  8. CCF——Z字形扫描问题

    试题编号: 201412-2 试题名称: Z字形扫描 时间限制: 2.0s 内存限制: 256.0MB 问题描述: 问题描述 在图像编码的算法中,需要将一个给定的方形矩阵进行Z字形扫描(Zigzag ...

  9. Z.ExtensionMethods 一个强大的开源扩展库

    今天有意的在博客园里面搜索了一下 Z.ExtensionMethods 这个扩展类库,确发现只搜到跟这个真正相关的才两篇博文而已,我都点进去看了一下,也都只是提到而已,没有专门介绍,才引起我写这篇文档 ...

随机推荐

  1. EVA:自定义字段实现

    原文链接:http://blog.csdn.net/ytangdigl/article/details/70145910 前言 自定义字段又叫做“开放模型”,用户可以根据自已的需求,添加需要的字段,实 ...

  2. 题解-python-CodeForces 227A

    codeforces题目,用python写 本题输入三个点坐标,考察叉积,若大于0则right,小于0则left,等于0则towards 代码: a = raw_input().split() b = ...

  3. innosetup语法详解

    ; 脚本由 Inno Setup 脚本向导 生成! ; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档! ;Inno Setup 是一个免费的 Windows 安装程序制作软件. ; ...

  4. Ansible之迭代、模板

    本节内容: 迭代 模板(JInjia2相关) Jinja2相关 一.迭代 当有需要重复性执行的任务时,可以使用迭代机制.其使用格式为将需要迭代的内容定义为item变量引用,并通过with_items语 ...

  5. bash101总结

    看了 bash101 ,做的一些总结吧,都是些常见用法,易错 1. 有空格会显示多行 2.contine 书里太细了,有空补起来

  6. Django: ImportError: No module named 'corsheaders'

    pip3 install django-cors-headers #设置PIP镜像 pip3 --trusted-host pypi.python.org install django-cors-he ...

  7. Android中Xposed框架篇-微信实现本地视频发布到朋友圈功能

    微信非常庞大,还好有一些强大的工具,下面就来总结收获的知识. 一.使用adb shell dumpsys activity top命令快速定位页面 二.使用Jadx进行方法跟踪时候如果发现没有结果,可 ...

  8. js 参数传递

    最近在读<javascript高级程序设计>时碰到了js传递方式的问题,花费了些时间,不过总算明白了. 数据类型 在 javascript 中数据类型可以分为两类: 基本类型值 primi ...

  9. OpenVAS漏洞扫描基础教程之创建用户

    OpenVAS漏洞扫描基础教程之创建用户 OpenVAS管理服务 默认情况下,OpenVAS服务仅创建了一个名为admin的用户,而且是管理员用户(拥有最高的权限).如果想要其它客户端登陆的话,不可能 ...

  10. Linux网卡驱动

    <网络知识> a:网络模型               OSI模型               TCP模型 虽然OSI模型看着挺完美的,但是过于复杂,这样就会导致不实用,在Linux系统中 ...