C# 正则表达式测试工具与分享窗体自适应类

放假刚回来,自己打算写一个正则表达式的测试工具,因为上次在网上用的一个在线正则表示测试工具就

没有很好的服务自己的,所以才有了现在的想法,想写一个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();//用以存储窗体中所有的控件名称
13 protected ArrayList CrlLocationX = new ArrayList();//用以存储窗体中所有的控件原始位置
14 protected ArrayList CrlLocationY = new ArrayList();//用以存储窗体中所有的控件原始位置
15 protected ArrayList CrlSizeWidth = new ArrayList();//用以存储窗体中所有的控件原始的水平尺寸
16 protected ArrayList CrlSizeHeight = new ArrayList();//用以存储窗体中所有的控件原始的垂直尺寸
17 protected int FormSizeWidth;//用以存储窗体原始的水平尺寸
18 protected int FormSizeHeight;//用以存储窗体原始的垂直尺寸
19
20 protected double FormSizeChangedX;//用以存储相关父窗体/容器的水平变化量
21 protected double FormSizeChangedY;//用以存储相关父窗体/容器的垂直变化量
22 protected int Wcounter = 0;//为防止递归遍历控件时产生混乱,故专门设定一个全局计数器
23
24 public void GetAllCrlLocation(Control CrlContainer)//获得并存储窗体中各控件的初始位置
25 {
26 foreach (Control iCrl in CrlContainer.Controls)
27 {
28
29 if (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
39 public void GetAllCrlSize(Control CrlContainer)//获得并存储窗体中各控件的初始尺寸
40 {
41 foreach (Control iCrl in CrlContainer.Controls)
42 {
43 if (iCrl.Controls.Count > 0)
44 GetAllCrlSize(iCrl);
45 CrlSizeWidth.Add(iCrl.Width);
46 CrlSizeHeight.Add(iCrl.Height);
47 }
48 }
49
50 public void GetInitialFormSize()//获得并存储窗体的初始尺寸
51 {
52
53 FormSizeWidth = this.Size.Width;
54 FormSizeHeight = this.Size.Height;
55
56 }
57
58
59
60 public void ResetAllCrlState(Control CrlContainer)//重新设定窗体中各控件的状态(在与原状态的对比中计算而来)
61 {
62
63
64 FormSizeChangedX = (double)this.Size.Width / (double)FormSizeWidth;
65 FormSizeChangedY = (double)this.Size.Height / (double)FormSizeHeight;
66
67 foreach (Control kCrl in CrlContainer.Controls)
68 {
69
70
71
72 if (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
92 public void ChangeSize(Control CrlContainer)
93 {
94 Wcounter = 0;
95 int counter = 0;
96 if (this.Size.Width < FormSizeWidth || this.Size.Height < FormSizeHeight)
97 //如果窗体的大小在改变过程中小于窗体尺寸的初始值,则窗体中的各个控件自动重置为初始尺寸,且窗体自动添加滚动条
98 {
99
100 foreach (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 }
110 this.AutoScroll = true;
111 }
112 else
113 //否则,重新设定窗体中所有控件的大小(窗体内所有控件的大小随窗体大小的变化而变化)
114 {
115 this.AutoScroll = false;
116 ResetAllCrlState(this);
117 }
118
119 }
120 }
121 }

使用方法

1.在项目里添加类

2.让需要自适应的窗体继承这个类

3.在窗体的Load事件里添加如下代码

1             GetInitialFormSize();
2 GetAllCrlLocation(this);
3 GetAllCrlSize(this);

4.在窗体的SizeChanged 事件里头添加如下代码

1  ChangeSize(this);

OK ,一切都准备好,build看下效果吧!

时间: 2024-08-10 00:04:28

C# 正则表达式测试工具与分享窗体自适应类的相关文章

一个绿色版的正则表达式测试工具

下载网址:http://www.cr173.com/soft/88309.html RegexTester是一款正则表达式测试器,支持单行模式.多行模式,经典的窗口设计,该工具允许你测试和分析正则表达式.正则表达式通常用于两种任务:1.验证,2.搜索/替换.用于验证时,通常需要在前后分别加上^和$,以匹配整个待验证字符串:搜索/替换时是否加上此限定则根据搜索的要求而定 功能简介: 支持仅使用表达式里的选中部分进行匹配 支持树形和表格两种结果查看方式 选中树结点或单元格时自动选中源文本中对应的部分

RegExTester | 正则表达式(PCRE)简易测试工具

分类: 开发辅助    版本: 0.0.3    发布日期: 2014-10-24 简单易用的 PCRE 正则表达式测试工具. 功能简介 支持两种测试模式:替换模式和匹配模式,其中:替换模式:将符合正则表达式的部分替换成指定文本内容(支持后向引用)匹配模式:分为普通匹配(支持捕获子模式,不支持命名子模式).匹配位置和长度("P"选项).匹配对象(“O”选项) 关于本程序的正则替换及匹配的完整说明详见<AHK的正则表达式相关文档>系列: (一) (二) (三) 完整的 PCR

Tasker 正则表达式测试器

http://tieba.baidu.com/p/3533498043 本次分享的是一个正则表达式测试工具,用来方便快捷的进行Tasker正则方面的测试,一些比较复杂的匹配需要进行多次尝试才可能正确匹配,所以有了这个工具,在这方面你将会省掉不少用编码所做的调试工作. 简介:测试核心部分采用JS实现,所以支持的是JS所支持的正则集合,虽然这些正则可以在Tasker里面通过JS来使用,但是可能和Tasker本身有些许不同,不过这些不同的特性只是扩展正则表达式集合中的内容,POSIX的正则表达式是共同

简单易用的leetcode开发测试工具(npm)

描述 最近在用es6解leetcode,当问题比较复杂时,有可能修正了新的错误,却影响了前面的流程.要用通用的测试工具,却又有杀鸡用牛刀的感觉,所以就写了个简单易用的leetcode开发测试工具,分享与大家. 工具安装 npm i leetcode_test 使用示例1 (问题010) codes: let test = require('leetcode_test').test /** * @param {string} s * @param {string} p * @return {boo

sql注入-安全测试必备“7”个工具 -纯工具干货分享!

软件测试工程师用5分钟时间,把这篇文章阅读完,如有帮助关注我!废话不多说,直接干货分享! 移动应用安全近几年越来越被重视,目前针对移动端的应用也越来越多,每天有大量的数据从移动端发出,部分数据在移动端进行处理,移动应用安全在今天显得尤为重要,那么如何能及时发掘移动APP的潜在漏洞,以免被者利用造成破坏呢,测试是目前发掘漏洞的有效方法.服务器安全检测重点包含以下测试点:在开始测试前,首先安装待测移动APP,通过缜密的训练技巧以及逆向.发散思维,使用所有可达的技术方法进行. 服务器端安全检测采向系统

android移动app测试几款移动端测试工具分享

接触移动app测试时间不长,从开始的学习时候开始知道eclipse,但是至今不是很懂,除开创建虚拟机,进行一下log的抓取,还有分析内存泄露.以及监控一下app的资源占用之外其他并不清楚.而且pc端的不方便是显而易见的,每次都需要连接调试模式并不见得有多方便,对于一些简单的性能测试,使用移动端的测试工具会更方便,结果更直观. 首先,我接触到第一款就是网易的Emmage,又名机关枪,这款app我感觉还是最成熟最直接的,操作简单,主要用于监控单个App的CPU,内存,流量,启动耗时,电量,电流等性能

分享:关于安全性测试工具小要点

有一篇关于安全性测试工具的文章:<Gunfight at The OK Button>. 文中列出了安全测试工具的15个要点: 1.针对源代码,测试出任何类型的弱点. 2.针对二进制文件,例如可执行文件,测试出任何类型的弱点. 3.检测实时系统的问题,像死锁检测.异步行为的问题等. 4.对任何类型的补丁创建基线并进行回归测试,防止引入新的弱点. 5.提供一个机制,确保已经过检查.校验的源代码一旦构建成为可执行文件后,没有被更改. 6.帮助测试人员找到可能触发或隐含恶意代码的地方. 7.提供关于

10大主流压力测试工具推荐

在移动应用和Web服务正式发布之前,除了进行必要的功能测试和安全测试,为了保证互联网产品的服务交付质量,往往还需要做压力/负载/性能测试.然而很多传统企业在试水互联网+的过程中,往往由于资源或产品迭代速度等原因忽视了这一块工作,导致新产品上线之后频繁出现卡顿等严重影响用户体验的问题.那么互联网产品为什么要进行压力/负载/性能测试,又有哪些工具帮我们实现呢,本文将为您细说端详. 压力/负载/性能测试之异同 在产品研发过程中,常常会混淆压力/负载/性能测试这三者之间的区别,这三种测试到底有什么不同呢

九款Web服务器性能压力测试工具

一.http_load 程序非常小,解压后也不到100Khttp_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把客户机搞死.还可以测试HTTPS类的网站请求.下载地址:http_load-12mar2006.tar.gz安装很简单 #tar zxvf http_load-12mar2006.tar.gz#cd http_load-12mar2006#make && make install 基本用法: