ExtensionMethod.cs

来源:互联网 发布:淘宝买雷蛇灵刃安全吗 编辑:程序博客网 时间:2024/05/15 07:30
using System;using System.Data;using System.Data.SqlClient;using System.Drawing;using System.Linq;using System.Text.RegularExpressions;using System.Windows.Forms;using Excel = Microsoft.Office.Interop.Excel;// 添加引用 -> .NET -> Microsoft.Office.Interop.Excel(2003->11.0, 2007->12.0)namespace ProductManager{ public static class ExtensionMethod { private static ToolTip tipText; static ExtensionMethod() { #region tipText = new ToolTip(); tipText.IsBalloon = true; // 使用气球状窗口的值。 tipText.ToolTipIcon = ToolTipIcon.Warning; tipText.ToolTipTitle = "企业销售管理系统"; #endregion } /// /// 根据视图获取自动编号。 /// /// /// /// #region public static string GetNewID(this DataView dataView, string letters) { dataView.RowFilter = null; // 清除该筛选器。 dataView.RowStateFilter = DataViewRowState.CurrentRows; // 包括未更改行、新行和已修改行的当前行。 var query = from item in dataView.Cast() let ID = item.Row.Field(0).Substring(letters.Length) select ID; int id = query.Any() ? int.Parse(query.Max()) + 1 : 1; return string.Format("{0}{1:D3}", letters, id); // D3 <=> 000 } #endregion /// /// 使用 SELECT 语句从数据源中检索数据。 /// /// /// /// #region public static DataView AsDataView(this DataTable table, string selectText) { try { using (SqlDataAdapter adapter = new SqlDataAdapter(selectText, DBConnection.SQL)) { table.Clear(); table.BeginLoadData();// 在加载数据时关闭通知、索引维护和约束。 adapter.Fill(table); table.EndLoadData();// 在加载数据后打开通知、索引维护和约束。 } } catch (Exception se) { MessageBox.Show(se.Message, "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Error); } return table.AsDataView(); } #endregion /// /// 用 DataGridView 控件打印 Excel 表。 /// /// /// #region public static void PrintToExcel(this DataGridView gridView, string caption) { Excel.Application newExcel = new Excel.Application(); try { Excel.Workbook newBook = newExcel.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet); Excel.Worksheet newSheet = newBook.ActiveSheet as Excel.Worksheet; newExcel.Visible = true; newBook.Password = "jinzhexian"; newSheet.Name = caption; Excel.Range newRange = newSheet.get_Range("B1", Type.Missing).get_Resize(2, gridView.ColumnCount); newRange.MergeCells = true; // 合并单元格。 newRange.Font.Size = 16; newRange.Value2 = caption; newRange = newRange.get_Offset(1, 0).get_Resize(1, gridView.ColumnCount); newRange.Value2 = gridView.Columns.Cast().Select(sm => sm.HeaderText).ToArray(); foreach (DataGridViewRow row in gridView.Rows) { newRange = newRange.get_Offset(1, 0); newRange.Value2 = row.Cells.Cast().Select(sm => sm.FormattedValue).ToArray(); } newRange = newRange.get_Offset(1, 0).get_Resize(2, gridView.ColumnCount); newRange.MergeCells = true; // 合并单元格。 newRange.Value2 = string.Format("打印日期: {0:yyyy'年'M'月'd'日'}", DateTime.Today); newRange.EntireColumn.AutoFit(); // 自动调整列宽。 newRange.EntireColumn.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter; newSheet.get_Range("A4", Type.Missing).Select(); newExcel.SendKeys("%WFF", true); // 冻结拆分窗格 Microsoft Office 2003(%WF), 2007(%WFF)。 } catch { newExcel.Quit(); } finally { newExcel = null; GC.Collect(); } } #endregion /// /// 设置 SplitContainer 拆分器的样式。 /// /// #region public static void SetStyle(this SplitContainer split) { split.BorderStyle = BorderStyle.Fixed3D; split.Dock = DockStyle.Fill; split.FixedPanel = FixedPanel.Panel1; // 指定 SplitContainer.Panel1 面板的大小保持不变。 split.IsSplitterFixed = true; // 禁用拆分器移动。 split.Orientation = Orientation.Horizontal; // 水平放置控件或元素。 split.SplitterDistance = 360; // 设置拆分器离 SplitContainer 的左边缘或上边缘的位置。 } #endregion /// /// 设置应用于 DataGridView 中的单元格的默认单元格样式。 /// /// #region public static void SetStyle(this DataGridView gridView) { gridView.AllowUserToAddRows = false; // 禁用添加行。 gridView.AllowUserToDeleteRows = false; // 禁用删除行。 gridView.AllowUserToOrderColumns = false; // 禁用列排序。 gridView.AllowUserToResizeRows = false; // 禁用调整行高。 gridView.AutoGenerateColumns = false; // 禁用自动创建列。 gridView.EnableHeadersVisualStyles = true; // 启用可视样式。 gridView.MultiSelect = false; // 用户仅能选择一个单元格、行或列。 gridView.ReadOnly = true; // 禁用编辑单元格。 gridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells; // 调整列宽仅适合位于当前屏幕上显示的所有单元格(包括标头单元格)的内容。 gridView.BackgroundColor = Color.Lavender; gridView.BorderStyle = BorderStyle.Fixed3D; gridView.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.BottomCenter; gridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing; // 禁用调整列标题的高度。 gridView.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; gridView.Dock = DockStyle.Fill; gridView.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.AutoSizeToFirstHeader; // TopLeftHeaderCell.Value。 gridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect; // 通过单击行的标头或是该行所包含的单元格选定整个行。 } #endregion /// /// 将 TextBoxBase,ListControl,DateTimePicker 控件的 Text 属性重置为其默认值。 /// /// #region public static void ClearText(this GroupBox gb) { foreach (ListControl list in gb.Controls.OfType()) { list.ResetText(); list.SelectedIndex = -1; } foreach (TextBoxBase text in gb.Controls.OfType()) { text.Clear(); } foreach (DateTimePicker dtp in gb.Controls.OfType()) { dtp.ResetText(); } //foreach (Control ctrl in gb.Controls) //{ // if (ctrl is TextBoxBase || ctrl is ListControl || ctrl is DateTimePicker) // ctrl.ResetText(); // ListControl list = ctrl as ListControl; // if (list != null) // list.SelectedIndex = -1; //} } #endregion /// /// 在 TextBoxBase 控件输入无效字符时,提示信息。 /// /// /// /// #region public static void ShowMessage(this MaskInputRejectedEventArgs e, MaskedTextBox maskedText, string caption) { if (e.Position < maskedText.TextLength) tipText.Show(caption, maskedText, 3000); else tipText.Hide(maskedText); } #endregion /// /// 指示指定的 Unicode 字符是否属于 Decimal(0-9) 类别。 /// /// #region public static void IsDigit(this KeyPressEventArgs e) { e.Handled = !(char.IsDigit(e.KeyChar) || (Keys)e.KeyChar == Keys.Back || (Keys)e.KeyChar == Keys.Delete); } #endregion /// /// 指示指定的 Unicode 字符是否属于 Decimal(###0.00) 类别。 /// /// #region public static void IsMoney(this KeyPressEventArgs e) { e.Handled = !(char.IsDigit(e.KeyChar) || e.KeyChar == '.' || (Keys)e.KeyChar == Keys.Back || (Keys)e.KeyChar == Keys.Delete); } #endregion /// /// 验证用户密码。 /// /// #region public static void IsPassword(this KeyPressEventArgs e) { e.Handled = !(char.IsLetterOrDigit(e.KeyChar) || e.KeyChar == '-' || e.KeyChar == '_' || (Keys)e.KeyChar == Keys.Back || (Keys)e.KeyChar == Keys.Delete); } #endregion /// /// 从 TextBoxBase 控件文本中移除所有空白字符后保留的字符数。 /// /// /// #region public static int TextTrimLength(this TextBoxBase textArea) { return textArea.Text.Trim().Length; } #endregion /// /// 验证电子邮件格式 E-mail。 /// /// /// #region public static bool IsValidEmail(this TextBoxBase email) { return Regex.IsMatch(email.Text, @"/w+([-+.']/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*"); } #endregion /// /// 验证中国身份证号码 ID Card。 /// /// /// #region public static bool IsValidCardID(this TextBoxBase cardID) { return Regex.IsMatch(cardID.Text, @"/d{17}[/d|X]|/d{15}"); } #endregion /// /// 验证中国电话号码。 /// /// /// #region public static bool IsValidPhone(this TextBoxBase phone) { return Regex.IsMatch(phone.Text, @"(/(/d{3}/)|/d{3}-)?/d{8}"); } #endregion }}
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 淘宝衣服吊牌剪了想退货怎么办修 用图片在淘宝搜衣服搜不到怎么办 汽车黑塑料水砂纸磨的不平怎么办 sat报名要你填10位电话怎么办 手绘板连接电脑绘画有点迟钝怎么办 走路不小心滑了一下特尴尬怎么办 小孩子头撞了头发长不出来怎么办 小孩子头磕破了不长头发怎么办 晚上洗了冷水头早上头痛怎么办 头发洗了一天就油了怎么办 米诺地尔搽剂喷了头皮油怎么办 头发可以种植吗如果是秃顶怎么办 前额头发少怎么办如何使头发增多 头发又细又软又少怎么办 宝宝一岁了头发又少又黄怎么办 生完孩子头发掉的厉害怎么办 洗完头发后头发很蓬松怎么办 头发掉的厉害怎么办吃什么好得快 头发掉的很厉害怎么办吃什么好 我头发掉的厉害怎么办吃什么药 头发干枯毛躁掉发怎么办吃什么 最近洗头时头发掉的厉害怎么办 生完小孩头发掉的厉害怎么办 生完小孩后头发掉的厉害怎么办 生完孩子后严重掉头发怎么办 生过孩子后掉头发严重怎么办 孩孑16岁了高中没考上怎么办 小孩的嘴巴里有点点该怎么办 小孩从出生哭笑嘴巴有点歪怎么办 儿童耳朵受伤后嘴巴歪了怎么办 手机锁屏图案忘了怎么办求解锁 忘给仓鼠买吃的了怎么办 两岁宝宝不爱吃饭只喝奶粉怎么办 下载百度云压缩包要提取密码怎么办 微信表情包图片过大无法添加怎么办 管理员吧群员全部踢了群主怎么办 微信笑脸表情斗图文字没有了怎么办 钨珠钢笔头用完笔墨了怎么办 暴走大事件被禁六一红鼻子节怎么办 弯腰推东西把腰闪了怎么办 怀孕初期弯腰捡东西腰不舒服怎么办