C# 正则表达式测试工具与分享窗体自适应类
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C# 正则表达式测试工具与分享窗体自适应类,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3753字,纯文字阅读大概需要6分钟。
内容图文
放假刚回来,自己打算写一个正则表达式的测试工具,因为上次在网上用的一个在线正则表示测试工具就
没有很好的服务自己的,所以才有了现在的想法,想写一个C#开发者用的正则表达式测试工具!期间由于最大化时控件不能同时放大,
所以就找出以学习的时候用的一段代码,原作者是谁我自己也不知道,我把代码分享出来,需要的
可以拿来用!原创作者可以消息我!需要这个工具的也可以留下邮箱!
下面是工具的截图和窗体放大的效果图!
下面是控件适应的代码,我把原来的代码简单的放到了类里面,以便可以方便的使用,可能有bug!
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Windows.Forms; 6 using System.Drawing; 7 using System.Collections; 8 namespace RegexTool 9 { 10 public class AutoResizeForm : Form 11 { 12 protected ArrayList InitialCrl = new ArrayList();//用以存储窗体中所有的控件名称 13protected ArrayList CrlLocationX = new ArrayList();//用以存储窗体中所有的控件原始位置 14protected ArrayList CrlLocationY = new ArrayList();//用以存储窗体中所有的控件原始位置 15protected ArrayList CrlSizeWidth = new ArrayList();//用以存储窗体中所有的控件原始的水平尺寸 16protected ArrayList CrlSizeHeight = new ArrayList();//用以存储窗体中所有的控件原始的垂直尺寸 17protectedint FormSizeWidth;//用以存储窗体原始的水平尺寸 18protectedint FormSizeHeight;//用以存储窗体原始的垂直尺寸 19 20protecteddouble FormSizeChangedX;//用以存储相关父窗体/容器的水平变化量 21protecteddouble FormSizeChangedY;//用以存储相关父窗体/容器的垂直变化量 22protectedint Wcounter = 0;//为防止递归遍历控件时产生混乱,故专门设定一个全局计数器 23 24publicvoid GetAllCrlLocation(Control CrlContainer)//获得并存储窗体中各控件的初始位置 25 { 26foreach (Control iCrl in CrlContainer.Controls) 27 { 28 29if (iCrl.Controls.Count > 0) 30 GetAllCrlLocation(iCrl); 31 InitialCrl.Add(iCrl); 32 CrlLocationX.Add(iCrl.Location.X); 33 CrlLocationY.Add(iCrl.Location.Y); 34 35 36 } 37 } 38 39publicvoid GetAllCrlSize(Control CrlContainer)//获得并存储窗体中各控件的初始尺寸 40 { 41foreach (Control iCrl in CrlContainer.Controls) 42 { 43if (iCrl.Controls.Count > 0) 44 GetAllCrlSize(iCrl); 45 CrlSizeWidth.Add(iCrl.Width); 46 CrlSizeHeight.Add(iCrl.Height); 47 } 48 } 49 50publicvoid GetInitialFormSize()//获得并存储窗体的初始尺寸 51 { 52 53 FormSizeWidth = this.Size.Width; 54 FormSizeHeight = this.Size.Height; 55 56 } 57 58 59 60publicvoid ResetAllCrlState(Control CrlContainer)//重新设定窗体中各控件的状态(在与原状态的对比中计算而来) 61 { 62 63 64 FormSizeChangedX = (double)this.Size.Width / (double)FormSizeWidth; 65 FormSizeChangedY = (double)this.Size.Height / (double)FormSizeHeight; 66 67foreach (Control kCrl in CrlContainer.Controls) 68 { 69 70 71 72if (kCrl.Controls.Count > 0) 73 { 74 ResetAllCrlState(kCrl); 75 76 } 77 78 79 Point point = new Point(); 80 point.X = (int)((int)CrlLocationX[Wcounter] * FormSizeChangedX); 81 point.Y = (int)((int)CrlLocationY[Wcounter] * FormSizeChangedY); 82 kCrl.Width = (int)((int)CrlSizeWidth[Wcounter] * FormSizeChangedX); 83 kCrl.Height = (int)((int)CrlSizeHeight[Wcounter] * FormSizeChangedY); 84 kCrl.Bounds = new Rectangle(point, kCrl.Size); 85 Wcounter++; 86// MessageBox.Show(Wcounter.ToString()); 87 88 89 } 90 } 91 92publicvoid ChangeSize(Control CrlContainer) 93 { 94 Wcounter = 0; 95int counter = 0; 96if (this.Size.Width < FormSizeWidth || this.Size.Height < FormSizeHeight) 97//如果窗体的大小在改变过程中小于窗体尺寸的初始值,则窗体中的各个控件自动重置为初始尺寸,且窗体自动添加滚动条 98 { 99100foreach (Control iniCrl in InitialCrl) 101 { 102 iniCrl.Width = (int)CrlSizeWidth[counter]; 103 iniCrl.Height = (int)CrlSizeHeight[counter]; 104 Point point = new Point(); 105 point.X = (int)CrlLocationX[counter]; 106 point.Y = (int)CrlLocationY[counter]; 107 iniCrl.Bounds = new Rectangle(point, iniCrl.Size); 108 counter++; 109 } 110this.AutoScroll = true; 111 } 112else113//否则,重新设定窗体中所有控件的大小(窗体内所有控件的大小随窗体大小的变化而变化)114 { 115this.AutoScroll = false; 116 ResetAllCrlState(this); 117 } 118119 } 120 } 121 }
使用方法
1.在项目里添加类
2.让需要自适应的窗体继承这个类
3.在窗体的Load事件里添加如下代码
1 GetInitialFormSize(); 2 GetAllCrlLocation(this); 3 GetAllCrlSize(this);
4.在窗体的SizeChanged 事件里头添加如下代码
1 ChangeSize(this);
OK ,一切都准备好,build看下效果吧!
原文:http://www.cnblogs.com/try-wyh/p/3779516.html
内容总结
以上是互联网集市为您收集整理的C# 正则表达式测试工具与分享窗体自适应类全部内容,希望文章能够帮你解决C# 正则表达式测试工具与分享窗体自适应类所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。