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. Ubuntu 使用命令更新 Ubuntu 系统

    我们都知道 Ubuntu 是一款 Linux 系统,是开源的系统,随时都在更新,所以人们都说 Linux 系统要比 Windows 系统安全.那么为了我们的电脑安全,我们如何利用 Ubuntu 命令来 ...

  2. ubuntu 安装 theano

    参考博客: http://www.cnblogs.com/anyview/p/5025704.html 1. 安装gfortran, numpy, scipy, sklearn, blas, atla ...

  3. scala递归实现换零钱算法

    import scala.collection.mutable.ArrayBuffer import scala.util.control.Breaks object Exchange { def d ...

  4. IAR环境搭建注意点

    1. include文件添加 Options->C/C++ Compiler 中的Preprocessor中增加一般的头文件 同时 在Assembler中的Preprocessor标签下添加$P ...

  5. 关于table边框,设置了border-collapse:collapse之后,设置border-radius没效果

    做项目遇到边框需要设置圆角,然后发现在设置了border-collapse:collapse之后,border-radius:10px不起作用了,发现这个是css本身的问题,两者不能混在一起使用. 代 ...

  6. CSUOJ 1560 图书管理员的表白方式

    Description 小V是中南大学图书馆的图书管理员,每天要整理很多同学们还回来的书.久而久之,他认识了很多常来图书馆的同学,比如说小L.简而言之吧,就是小V喜欢上了小L,并且想在下一次她来还书的 ...

  7. 全链路压测平台(Quake)在美团中的实践

    背景 在美团的价值观中,以“客户为中心”被放在一个非常重要的位置,所以我们对服务出现故障越来越不能容忍.特别是目前公司业务正在高速增长阶段,每一次故障对公司来说都是一笔非常不小的损失.而整个IT基础设 ...

  8. iOS 9应用开发教程之使用代码添加按钮美化按钮

    iOS 9应用开发教程之使用代码添加按钮美化按钮 丰富的用户界面 在iOS9中提供了很多的控件以及视图来丰富用户界面,对于这些视图以及控件我们在上一章中做了简单的介绍.本章我们将详细讲解这些视图. i ...

  9. django数据库操作-增删改查-多对多关系以及一对多(外键)关系

    一.一对多(外键) 例子:一个作者对应多本书,一本书只有一个作者 model代码: class Person(models.Model); name = models.CharField('作者姓名' ...

  10. python orm字段解析

    null # 是否可以为空 default # 默认值 primary_key # 主键 db_column # 列名 db_index # 索引(db_index=True) unique # 唯一 ...