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. OSI & TCP/IP 参考模型

    OSI参考模型的结构 OSI划分七层结构的基本原则 网中各结点都具有相同的层次: 不同结点的同等层具有相同的功能: 同一结点内相邻层之间通过接口通信: 每一层可以使用下层提供的服务,并向其上层提供服务 ...

  2. appium----新版appium 1.11.1 支持ByName定位

    org.openqa.selenium.InvalidSelectorException: Locator Strategy 'name' is not supported for this sess ...

  3. deploy.sh

    备份一下之前的一个脚本吧 #!bin/bash adb uninstall org.cocos2d.fishingjoy4 for apk in `find . -name '*.apk' | xar ...

  4. 【洛谷】P4207 [NOI2005]月下柠檬树

    题解 原来自适应simpson积分是个很简单的东西! 我们尝试分析一下影子,圆的投影还是圆,圆锥的尖投影成一个点,而圆台的棱是圆的公切线,我们把圆心投影出来,发现平面上圆心的距离是两两高度差/tan( ...

  5. 《Android源码设计模式》--Builder模式

    No1: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示 No2: 在Android源码中,最常用到的Builder模式就是AlertDialog.Builder No3: ...

  6. linux 添加samba账户

    1.adduser kilen   添加linux账户 2.cd /etc/samba/ 当前目录下修改smb.conf 文件 ,一般情况下是只读文件,需要修改权下 (用root用户) chmod 7 ...

  7. python opencv3 静态图片检测人脸

    git:https://github.com/linyi0604/Computer-Vision # coding:utf-8 import cv2 filename = "../data/ ...

  8. 工具 EZDML表结构设计器

    软件官网:http://www.ezdml.com/ 作者邮箱:huzzz@163.com EZDML EZDML是一个数据库建表的软件. 可快速的进行数据库表结构设计,建立数据模型. 类似大家常用的 ...

  9. android 单位 什么是屏幕密度?

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha sp dp px in in 表示英寸, 是屏幕的物理尺寸.1英寸是2.54厘米. dp ...

  10. 【推导】Codeforces Round #484 (Div. 2) C. Cut 'em all!

    题意:给你一棵树,让你切掉尽可能多的边,使得产生的所有连通块都有偶数个结点. 对于一棵子树,如果它有奇数个结点,你再从里面怎么抠掉偶数结点的连通块,它都不会变得合法.如果它本来就有偶数个结点,那么你怎 ...