ExtensionMethod.cs
来源:互联网 发布:2016总决赛g7数据统计 编辑:程序博客网 时间:2024/05/09 19:29
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
}
/// <summary>
/// 根据视图获取自动编号。
/// </summary>
/// <param name="dataView"></param>
/// <param name="letters"></param>
/// <returns></returns>
#region
public static string GetNewID(this DataView dataView, string letters)
{
dataView.RowFilter = null; // 清除该筛选器。
dataView.RowStateFilter = DataViewRowState.CurrentRows; // 包括未更改行、新行和已修改行的当前行。
var query = from item in dataView.Cast<DataRowView>()
let ID = item.Row.Field<string>(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
/// <summary>
/// 使用 SELECT 语句从数据源中检索数据。
/// </summary>
/// <param name="dataTable"></param>
/// <param name="selectText"></param>
/// <returns></returns>
#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
/// <summary>
/// 用 DataGridView 控件打印 Excel 表。
/// </summary>
/// <param name="dgv"></param>
/// <param name="caption"></param>
#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<DataGridViewColumn>().Select(sm => sm.HeaderText).ToArray();
foreach (DataGridViewRow row in gridView.Rows)
{
newRange = newRange.get_Offset(1, 0);
newRange.Value2 = row.Cells.Cast<DataGridViewCell>().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
/// <summary>
/// 设置 SplitContainer 拆分器的样式。
/// </summary>
/// <param name="split"></param>
#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
/// <summary>
/// 设置应用于 DataGridView 中的单元格的默认单元格样式。
/// </summary>
/// <param name="gridView"></param>
#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
/// <summary>
/// 将 TextBoxBase,ListControl,DateTimePicker 控件的 Text 属性重置为其默认值。
/// </summary>
/// <param name="gb"></param>
#region
public static void ClearText(this GroupBox gb)
{
foreach (ListControl list in gb.Controls.OfType<ListControl>())
{
list.ResetText();
list.SelectedIndex = -1;
}
foreach (TextBoxBase text in gb.Controls.OfType<TextBoxBase>())
{
text.Clear();
}
foreach (DateTimePicker dtp in gb.Controls.OfType<DateTimePicker>())
{
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
/// <summary>
/// 在 TextBoxBase 控件输入无效字符时,提示信息。
/// </summary>
/// <param name="e"></param>
/// <param name="maskedText"></param>
/// <param name="caption"></param>
#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
/// <summary>
/// 指示指定的 Unicode 字符是否属于 Decimal(0-9) 类别。
/// </summary>
/// <param name="e"></param>
#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
/// <summary>
/// 指示指定的 Unicode 字符是否属于 Decimal(###0.00) 类别。
/// </summary>
/// <param name="e"></param>
#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
/// <summary>
/// 验证用户密码。
/// </summary>
/// <param name="e"></param>
#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
/// <summary>
/// 从 TextBoxBase 控件文本中移除所有空白字符后保留的字符数。
/// </summary>
/// <param name="text"></param>
/// <returns></returns>
#region
public static int TextTrimLength(this TextBoxBase textArea)
{
return textArea.Text.Trim().Length;
}
#endregion
/// <summary>
/// 验证电子邮件格式 E-mail。
/// </summary>
/// <param name="email"></param>
/// <returns></returns>
#region
public static bool IsValidEmail(this TextBoxBase email)
{
return Regex.IsMatch(email.Text, @"/w+([-+.']/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*");
}
#endregion
/// <summary>
/// 验证中国身份证号码 ID Card。
/// </summary>
/// <param name="cardID"></param>
/// <returns></returns>
#region
public static bool IsValidCardID(this TextBoxBase cardID)
{
return Regex.IsMatch(cardID.Text, @"/d{17}[/d|X]|/d{15}");
}
#endregion
/// <summary>
/// 验证中国电话号码。
/// </summary>
/// <param name="phone"></param>
/// <returns></returns>
#region
public static bool IsValidPhone(this TextBoxBase phone)
{
return Regex.IsMatch(phone.Text, @"(/(/d{3}/)|/d{3}-)?/d{8}");
}
#endregion
}
}
- ExtensionMethod.cs
- ExtensionMethod.cs
- ExtensionMethod.cs
- ExtensionMethod
- 18、ExtensionMethod
- CS..........................
- cs
- cs
- cs
- Cs
- cs
- cs
- cs
- CS
- cs
- cs,
- cs
- cs
- 去掉页眉横线三法 (WORD)
- 迅雷 5.9.14.1246 去广告版补丁
- 吃了没文化的亏
- DBTable.cs
- ubuntu安装软件的方法。
- ExtensionMethod.cs
- 小小记录
- ProductSet.cs
- 110个oracle常用函数总结
- Client.designer.cs
- LPTSTR、LPCSTR、LPCTSTR、LPSTR的意义
- ReadFile
- ProductManager.sql
- 对Terrarium User Wiki的学习笔记