WinForm BaseClass类常用通用方法
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Security.Cryptography; namespace HRPOWER.BLL
{
/// <summary>
/// 业务逻辑层基类
/// </summary>
public class BaseClass
{
/// <summary>
/// 屏幕宽度
/// </summary>
private static Decimal WidthPercent; /// <summary>
/// 屏幕高度
/// </summary>
private static Decimal HeightPercent; /// <summary>
/// 根据列名字符串数组,创建自定义DataTable
/// </summary>
/// <param name="sList">列名字符串数组</param>
/// <returns>DataTable</returns>
public static DataTable CreateSelfDataTable(String[] sList)
{
DataTable _dtSelf = new DataTable(); foreach (String s in sList)
{
_dtSelf.Columns.Add(s);
}
_dtSelf.AcceptChanges(); return _dtSelf;
}
/// <summary>
/// 消息提示,默认为OK按键的Information提示信息
/// </summary>
/// <param name="sMessage">提示信息</param>
/// <param name="sTitle">信息标题</param>
/// <returns>DialogResult</returns>
public static System.Windows.Forms.DialogResult DialogMessage(String sMessage, String sTitle)
{
return DialogMessage(sMessage,
sTitle,
System.Windows.Forms.MessageBoxButtons.OK,
System.Windows.Forms.MessageBoxIcon.Information);
}
/// <summary>
/// 消息提示,默认为OK按键的Information提示信息
/// </summary>
/// <param name="sMessage">提示信息</param>
/// <param name="sTitle">信息标题</param>
/// <param name="mbbButtons">MessageBoxButtons枚举</param>
/// <returns>DialogResult</returns>
public static System.Windows.Forms.DialogResult DialogMessage(String sMessage,
String sTitle,
System.Windows.Forms.MessageBoxButtons mbbButtons)
{
return DialogMessage(sMessage, sTitle, mbbButtons, System.Windows.Forms.MessageBoxIcon.Information);
}
/// <summary>
/// 消息提示,默认为OK按键的Information提示信息
/// </summary>
/// <param name="sMessage">提示信息</param>
/// <param name="sTitle">信息标题</param>
/// <param name="mbbButtons">MessageBoxButtons枚举</param>
/// <param name="mbiIcon">MessageBoxIcon枚举</param>
/// <returns>DialogResult</returns>
public static System.Windows.Forms.DialogResult DialogMessage(String sMessage,
String sTitle,
System.Windows.Forms.MessageBoxButtons mbbButtons,
System.Windows.Forms.MessageBoxIcon mbiIcon)
{
return System.Windows.Forms.MessageBox.Show(sMessage, sTitle, mbbButtons, mbiIcon);
}
/// <summary>
/// 加密一个字符串
/// </summary>
/// <param name="vStringToEncrypt">待要去加密的字符串</param>
/// <returns>返回一个加密后的字符串</returns>
public static String Encrypt(String vStrToEncrypt)
{
byte[] key = { };
byte[] IV = { , , , , , , , };
byte[] inputByteArray;
String vEncryptKey = "!@#$1234";
try
{
key = System.Text.Encoding.UTF8.GetBytes(vEncryptKey.Substring(, ));
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
inputByteArray = System.Text.Encoding.UTF8.GetBytes(vStrToEncrypt);
System.IO.MemoryStream ms = new System.IO.MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(key, IV), CryptoStreamMode.Write);
cs.Write(inputByteArray, , inputByteArray.Length);
cs.FlushFinalBlock(); return Convert.ToBase64String(ms.ToArray());
}
catch (System.Exception ex)
{
throw ex;
}
}
/// <summary>
/// 对一进行加密的字符串进行解密
/// </summary>
/// <param name="vStringToDecrypt">待要去解密的字符串</param>
/// <returns>返回一个明文</returns>
public static String Decrypt(String vStrToDecrypt)
{
vStrToDecrypt = vStrToDecrypt.Trim().Replace(" ", "+"); //process blank char for the encrypt method.
byte[] key = { };
byte[] IV = { , , , , , , , };
byte[] inputByteArray = new byte[vStrToDecrypt.Length];
String vDecryptKey = "!@#$1234";
try
{
key = System.Text.Encoding.UTF8.GetBytes(vDecryptKey.Substring(, ));
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
inputByteArray = Convert.FromBase64String(vStrToDecrypt); System.IO.MemoryStream ms = new System.IO.MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(key, IV), CryptoStreamMode.Write);
cs.Write(inputByteArray, , inputByteArray.Length);
cs.FlushFinalBlock(); System.Text.Encoding encoding = System.Text.Encoding.UTF8;
return encoding.GetString(ms.ToArray());
}
catch (System.Exception ex)
{
throw ex;
}
}
/// <summary>
/// 定义一个操作类型
/// ADD表示新增,EDIT表示修改,DEL表示删除
/// </summary>
public enum OperationType
{
ADD = ,
EDIT = ,
DEL =
} /// <summary>
/// 定义照片类型
/// </summary>
public enum PictureSize
{
/// <summary>
/// 一代身份证
/// </summary>
ID_CARD1 = , /// <summary>
/// 驾驶证
/// </summary>
DRIVER_CARD = , /// <summary>
/// 护照
/// </summary>
PASSPORT_CARD = , /// <summary>
/// 二代身份证
/// </summary>
ID_CARD2 = , /// <summary>
/// 二代身份证背面,或类似尺寸证件的拍照使用
/// </summary>
ID_CARD2_BOTTOM = , /// <summary>
/// 台胞证
/// </summary>
TAIWAN_CARD = , /// <summary>
/// 港澳通行证
/// </summary>
HKMACAO_CARD = , /// <summary>
/// 广东省居住证
/// </summary>
RESIDENCE_CARD = , /// <summary>
/// 军官证
/// </summary>
ARMY_CARD = , /// <summary>
/// 户口本
/// </summary>
HOUSEHOLD_CARD =
} /// <summary>
/// 定义照片颜色类型
/// </summary>
public enum PictureColor
{
/// <summary>
/// 黑白照
/// </summary>
WHITEBLACK = ,
/// <summary>
/// 彩色照
/// </summary>
FULLCOLOR =
} /// <summary>
/// 定义绑定控件数据员类型
/// </summary>
public enum DataSourceType
{
/// <summary>
/// 表示DataTable形式的数据员
/// </summary>
DataCollection = ,
/// <summary>
/// 表示Items形式数据员
/// </summary>
DataItems =
}
/// <summary>
/// 加载一个“请选择”值到Combobox控件
/// </summary>
/// <param name="dtSource">Combobox控件数据源</param>
/// <param name="sValue">ValueMember字段</param>
/// <param name="sDisplay">DisplayMember字段</param>
/// <returns></returns>
public static DataTable LoadInvalidValueToCombobox(DataTable dtSource, String sValue, String sDisplay)
{
DataRow _drNew = dtSource.NewRow();
_drNew[sValue] = ;
_drNew[sDisplay] = "请选择";
dtSource.Rows.InsertAt(_drNew, );
dtSource.AcceptChanges(); return dtSource;
}
/// <summary>
/// 加载一个“全部单位”值到Combobox控件
/// </summary>
/// <param name="dtSource">Combobox控件数据源</param>
/// <param name="sValue">ValueMember字段</param>
/// <param name="sDisplay">DisplayMember字段</param>
/// <returns></returns>
public static DataTable LoadInvalidValueToCombobox1(DataTable dtSource, String sValue, String sDisplay)
{
DataRow _drNew = dtSource.NewRow();
_drNew[sValue] = ;
_drNew[sDisplay] = "全部单位";
dtSource.Rows.InsertAt(_drNew, );
dtSource.AcceptChanges(); return dtSource;
} /// <summary>
/// 验证字符串是否为正整数
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static bool IsNumeric(string str)
{
System.Text.RegularExpressions.Regex reg1 = new System.Text.RegularExpressions.Regex(@"^[0-9]*[1-9][0-9]*$");
return reg1.IsMatch(str);
}
/// <summary>
/// 验证字符串是否为0或正浮点类型
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static bool isDouble(String str)
{
//正则表达式验证,返回一个bool类型
bool isReturn = false; try
{
System.Text.RegularExpressions.Regex reg1 = new System.Text.RegularExpressions.Regex(@"^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$");
if (reg1.IsMatch(str) == true || IsNumeric(str) == true) isReturn = true; ;
}
catch
{
isReturn = false;
} return isReturn;
}
/// <summary>
/// 验证固定电话号码
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static bool isTel(String str)
{
System.Text.RegularExpressions.Regex reg1 = new System.Text.RegularExpressions.Regex(@"^(\d{3,4}-)?\d{7,8}$");
return reg1.IsMatch(str); }
/// <summary>
/// 验证手机号码
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static bool isMobile(String str)
{
System.Text.RegularExpressions.Regex reg1 = new System.Text.RegularExpressions.Regex(@"^[1][3-8]\d{9}$");
return reg1.IsMatch(str); }
/// <summary>
/// 验证数字
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static bool isNumber(String str)
{
System.Text.RegularExpressions.Regex reg1 = new System.Text.RegularExpressions.Regex(@"^\d+$");
return reg1.IsMatch(str); }
/// <summary>
/// 验证邮政编码
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static bool isPost(String str)
{
System.Text.RegularExpressions.Regex reg1 = new System.Text.RegularExpressions.Regex(@"^\d{6}$");
return reg1.IsMatch(str); }
/// <summary>
/// 验证邮件地址
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static bool isEmail(String str)
{
System.Text.RegularExpressions.Regex reg1 = new System.Text.RegularExpressions.Regex(@"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$");
return reg1.IsMatch(str); } /// <summary>
/// 验证IP地址
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static bool isIP(String str)
{
return System.Text.RegularExpressions.Regex.IsMatch(str,
@"^(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])){3}$");
} /// <summary>
/// 验证输入字符串只能为数字或字母
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static bool IsNumberOrChar(String str)
{
return System.Text.RegularExpressions.Regex.IsMatch(str, "^([0-9]|[A-Z]|[a-z])+$");
} //object类型转十进制
public static decimal ConvertoDecimal(object o)
{
decimal number = ;
try
{
if (o != null && o.ToString() != "")
number = Convert.ToDecimal(o); }
catch
{
number = ;
} return number;
} //判断是否字符串是否为日期类型
public static DateTime isDataTime(string strDate)
{
DateTime dtDate; if (DateTime.TryParse(strDate, out dtDate))
{
return Convert.ToDateTime(strDate);
}
else
{
return Convert.ToDateTime("1753-1-1");
} } /// <summary>
/// 生成GUID码
/// </summary>
/// <returns></returns>
public static string getGUID()
{
System.Guid guid = new Guid();
guid = Guid.NewGuid();
string str = guid.ToString();
return str;
}
/// <summary>
/// 判断文件夹是否存在,不存在就创建
/// </summary>
/// <param name="sFileFolder">文件夹路径</param>
/// <returns>文件夹路径</returns>
public static string GetFileFolder(String sFileFolder)
{
if (!System.IO.Directory.Exists(sFileFolder))
{
System.IO.Directory.CreateDirectory(sFileFolder);
}
return sFileFolder;
}
/// <summary>
/// 生成一个错误日志
/// </summary>
/// <param name="sErrMsg">错误信息</param>
public static void LogErrorLog(string sErrMsg)
{
String _sFolder = System.Configuration.ConfigurationManager.AppSettings["Error_Log"]; _sFolder = GetFileFolder(_sFolder);
String _sFile = String.Format("{0}{1}.txt", _sFolder, DateTime.Now.ToString("yyyyMMdd")); System.IO.FileInfo _fiFile = new System.IO.FileInfo(_sFile);
System.IO.StreamWriter _swTxt; if (!_fiFile.Exists)
{
_swTxt = _fiFile.CreateText();
}
else
{
_swTxt = _fiFile.AppendText();
} _swTxt.WriteLine(String.Format("{0}-----{1}", DateTime.Now.ToString("HH:mm:ss"), sErrMsg));
_swTxt.Close();
} Boolean isFind = false; //查找文件是否找到标识位
/// <summary>
/// 查找指定文件,返回查找文件路径
/// </summary>
/// <param name="sFileName">待查找的文件名</param>
/// <returns>返回查找文件路径</returns>
public static String SearchFile(String sFileName)
{
System.IO.DriveInfo[] driList = System.IO.DriveInfo.GetDrives();
BaseClass _bc = new BaseClass(); String _sFileName = String.Empty; foreach (System.IO.DriveInfo dri in driList)
{
_sFileName = _bc.FindFile(dri.RootDirectory, sFileName);
String _tmp = _sFileName.Substring(_sFileName.LastIndexOf(@"\") + ); if (_tmp == sFileName)
{
break;
}
} return _sFileName;
} private String FindFile(System.IO.DirectoryInfo diDirectory, String sFileName)
{
String sFindFile = String.Empty;
try
{
foreach (System.IO.FileInfo fi in diDirectory.GetFiles())
{
if (fi.Name == sFileName)
{
sFindFile = fi.FullName;
isFind = true;
break;
}
} foreach (System.IO.DirectoryInfo di in diDirectory.GetDirectories())
{
if (!isFind)
sFindFile = FindFile(di, sFileName);
else
break;
}
}
catch
{
throw new System.IO.FileNotFoundException("文件不能找到");
} return sFindFile;
}
/// <summary>
/// 根据屏幕分辨率自动调整控件位置与大小
/// </summary>
/// <param name="cContainer">要调整的控件</param>
/// <param name="ScreenWidth">当前显示器分辨率宽度</param>
/// <param name="ScreenHeight">当前显示器分辨率高度</param>
public static void AutoChangeControlSizeByScreen(System.Windows.Forms.Control cContainer,
int ScreenWidth,
int ScreenHeight)
{
cContainer.SuspendLayout();
//显示屏大于1280或1024不处理
if (ScreenWidth > || ScreenHeight > )
{
WidthPercent = ;
HeightPercent = ;
}
else
{
WidthPercent = Math.Round((decimal)ScreenWidth / , );
HeightPercent = Math.Round((decimal)ScreenHeight / , );
}
//处理传过来控件本身等比缩放
cContainer.Left = (int)Math.Ceiling((decimal)cContainer.Left * WidthPercent);
cContainer.Top = (int)Math.Ceiling((decimal)cContainer.Top * HeightPercent);
cContainer.Width = (int)Math.Ceiling((decimal)cContainer.Width * WidthPercent);
cContainer.Height = (int)Math.Ceiling((decimal)cContainer.Height * HeightPercent);
ChangeControl(cContainer);
cContainer.ResumeLayout();
} private static void ChangeControl(System.Windows.Forms.Control cContainer)
{
foreach (System.Windows.Forms.Control c in cContainer.Controls)
{
c.Left = (int)Math.Ceiling((decimal)c.Left * WidthPercent);
c.Top = (int)Math.Ceiling((decimal)c.Top * HeightPercent);
c.Width = (int)Math.Ceiling((decimal)c.Width * WidthPercent);
c.Height = (int)Math.Ceiling((decimal)c.Height * HeightPercent);
c.Font = new System.Drawing.Font("微软雅黑", c.Font.Size * (float)((HeightPercent + WidthPercent) / )); if (c.HasChildren)
{
ChangeControl(c);
}
}
} /// <summary>
/// 统一设置字体为微软雅黑12pt
/// </summary>
/// <param name="cContainer">要调整的控件</param>
public static void ChangeFont(System.Windows.Forms.Control cContainer)
{
foreach (System.Windows.Forms.Control c in cContainer.Controls)
{
c.Font = new System.Drawing.Font("微软雅黑", );
if (c.HasChildren) ChangeFont(c);
}
} /// <summary>
/// 判断文件夹是否存在,不存在创建
/// 同时返回文件夹路径
/// </summary>
/// <param name="sFolderPath">文件夹绝对路径</param>
/// <returns></returns>
public static String IsFolderExist(String sFolderPath)
{
if (System.IO.Directory.Exists(sFolderPath) == false)
{
System.IO.Directory.CreateDirectory(sFolderPath);
}
return sFolderPath;
} /// <summary>
/// 导出Excel的文件名称
/// </summary>
/// <param name="titleName">导出标题名称</param>
/// <param name="suffixName">导出序列号(SN)</param>
/// <returns></returns>
public static String ExcelFileName(String titleName, String suffixName)
{
String strName;
if (String.IsNullOrEmpty(suffixName))
{
strName = DateTime.Now.ToString("yyyyMMdd_HHmmss") + "_" + titleName;
}
else
{
strName = DateTime.Now.ToString("yyyyMMdd_HHmmss") + "_" + titleName + "_" + suffixName;
}
return strName;
} /// <summary>
/// 导出Excel的文件名称
/// </summary>
/// <param name="titleName">导出标题名称</param>
/// <returns></returns>
public static String ExcelFileName(String titleName)
{
return ExcelFileName(titleName, String.Empty);
}
}
}
新增:
1、字符串转数组
/// <summary>
/// 包含“,”的字符串转数组
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public string[] mArray(string str)
{
string[] mMsg;
if (str.IndexOf(',') != -)
{
mMsg = str.Split(','); }
else
{
mMsg = new string[];
mMsg[] = str;
}
return mMsg; }
2、自定义数组
/// <summary>
/// 根据列名字符串数组,创建自定义DataTable
/// </summary>
/// <param name="sList">列名字符串数组</param>
/// <returns>DataTable</returns>
public static DataTable CreateSelfDataTable(String[] sList)
{
DataTable _dtSelf = new DataTable(); foreach (String s in sList)
{
_dtSelf.Columns.Add(s);
}
_dtSelf.AcceptChanges(); return _dtSelf;
}
3、临时创建一个表
private static DataTable CreatTable()
{
DataTable dtSource = new DataTable();
dtSource.Columns.Add("NAME", typeof(string));
dtSource.Columns.Add("DisMembers", typeof(string));
//一百万行数据
for (int i = ; i < ; i++)
{
DataRow dr = dtSource.NewRow();
dr["NAME"] = i;
dr["DisMembers"] = i;
dtSource.Rows.Add(dr);
}
dtSource.AcceptChanges();
return dtSource;
}
WinForm BaseClass类常用通用方法的更多相关文章
- Delphi中TStringList类常用属性方法详解
TStrings是一个抽象类,在实际开发中,是除了基本类型外,应用得最多的. 常规的用法大家都知道,现在来讨论它的一些高级的用法. 先把要讨论的几个属性列出来: 1.CommaText 2.Delim ...
- File类常用的方法与字节流类方法简介
File类常用的方法 获取功能的方法 public String getAbsolutePath() :返回此File的绝对路径名字符串. public String getPath() :将此Fil ...
- Object类中通用方法之:toString()方法
1.Java所有的对象都是Object类的实例,都可以直接调用该类中定义的方法,这些方法称为通用方法 2.toString()方法即为Object类中定义的通用方法之一 3.平时我们如果在控制台直接打 ...
- WebDriverWait类以及类常用的方法
WebDriverWait类提供了显式等待和隐式等待,显式等待的等待时间是固定的,固定了10s就必须等待10s,隐式等待的等待时间是个范围,例如最大10s,那么如果在3s的时候程序达到预期的结果,那么 ...
- Collections集合工具类常用的方法
java.utils.Collections //是集合工具类,用来对集合进行操作.部分方法如下: public static <T> boolean addAll(Collection& ...
- Calendar类常用需求方法
经常处理一些日期相关的信息,Calendar类是处理日期的常用类,写下几个方法,不用重复造轮子了. 1.求上一天,下一天的日期 Date now = new Date();Calendar c = C ...
- QueryRunner类常用的方法
public Object query(Connection conn, String sql, Object[] params, ResultSetHandler rsh) throws SQLEx ...
- Spring JdbcTemplate类常用的方法
execute(String sql) 可执行任何sql语句,但返回值是void,所以一般用于数据库的新建.修改.删除和数据表记录的增删改. int update(String sql) int ...
- js常用通用方法
验证身份证详细方法 function isCardNo(pId) { var arrVerifyCode = [1, 0, "x", 9, 8, 7, 6, 5, 4, 3, 2] ...
随机推荐
- sql server 多列转多行实现方法
select * from b_workOrder select * from( SELECT work_order_id,work_level, roles,code FROM (SELECT wo ...
- 关于push数组,然后遍历数组遇到的坑,遍历显示函数
我偷了个懒将点击的东西push进一个arr里,然后遍历显示在上面. 为啥子出现了上函数,什么鬼什么鬼.我检查很久都不晓得那里push进去的. 一个小时后,我想想要不看看arr里面的结构吧! 尼玛!为啥 ...
- XPath 学习二: 语法
XPath 使用路径表达式来选取 XML 文档中的节点或节点集.节点是通过沿着路径 (path) 或者步 (steps) 来选取的. 下面列出了最有用的路径表达式: 表达式 描述 nodename 选 ...
- php 生成word的三种方式
原文地址 http://www.jb51.net/article/97253.htm 最近工作遇到关于生成word的问题 现在总结一下生成word的三种方法. btw:好像只要是标题带PHP的貌似点击 ...
- 基于fastweixin的微信开发环境搭建(一)
由于公司业务需要,开发微信版本,才开始接触微信公众平台.在github折腾了几天,试过好几个微信sdk,最终选择fastweixin.个人觉得这个框架还是值得使用的,使用也简单.那么问题来了,很多人想 ...
- ubuntu下gedit闪退,遇到问题:ERROR:../../gi/pygi-argument.c:1583:_pygi_argument_to_object: code should not be reached 已放弃 (核心已转储)
解决方法:编辑->首选项关闭->插件->取消"多文件编辑"
- websocket
websocket是一个协议,在单个TCP连接上提供全双工通信. websocket被设计并被实现在 web浏览器和 web 服务器上,但是它可以被用于任何c/s 架构的应用程序中. websock ...
- [Java] JSP笔记 - Listener 监听器
Java Web 开发时,可以使用 Listener 来监听来监听一些事件,从而实现一些功能.实际上这个监听器,原理就是 Delphi 中大家常用的各种事件. 1. 那么,监听器的主要用途用哪些呢: ...
- 微信jsApI及微信分享对应在手机浏览器的调用总结。
摘录自别人的博客: 第一篇:微信内置浏览器的JsAPI(WeixinJSBridge续) 之前有写过几篇关于微信内置浏览器(WebView)中特有的Javascript API(Javascript ...
- 对路径的访问被拒绝,解决之后又报-未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序。
服务器环境:Server 2008 64位系统 问题:在导入Excel题录表时报错,1对路径的访问被拒绝,2未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序. 解决方案 ...