using System; using System.Collections; using System.Collections.Generic; using System.Drawing; using System.Drawing.Imaging; using System.Drawing.Printing; using System.IO; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Security.Cryptography; using System.Text; using System.Windows.Forms; using Microsoft.VisualBasic; using Microsoft.VisualBasic.CompilerServices; namespace Dongke.IBOSS.PRD.Framework.Controls { [StandardModule] internal sealed class Module1 { public const string G_CustomDefinedPaperName = "[自定义纸张]"; public static Ruler G_ruler = new Ruler(); public static bool G_CancelDocument = false; public static bool G_CancelExportDGVToExcel = false; public static bool G_CancelPrint = false; private static byte[] G_mykey = new byte[24] { 10, 32, 53, 24, 53, 23, 88, 223, 99, 10, 33, 62, 64, 76, 68, 98, 13, 131, 93, 33, 15, 56, 13, 13 }; private static byte[] G_myiv = new byte[8] { 13, 56, 87, 13, 98, 53, 80, 32 }; [DllImport("kernel32", CharSet = CharSet.Ansi, EntryPoint = "GetPrivateProfileStringA", ExactSpelling = true, SetLastError = true)] private static extern int GetPrivateProfileString([MarshalAs(UnmanagedType.VBByRefStr)] ref string lpApplicationName, [MarshalAs(UnmanagedType.VBByRefStr)] ref string lpKeyName, [MarshalAs(UnmanagedType.VBByRefStr)] ref string lpDefault, [MarshalAs(UnmanagedType.VBByRefStr)] ref string lpReturnedString, int nSize, [MarshalAs(UnmanagedType.VBByRefStr)] ref string lpFileName); [DllImport("kernel32", CharSet = CharSet.Ansi, EntryPoint = "WritePrivateProfileStringA", ExactSpelling = true, SetLastError = true)] private static extern int WritePrivateProfileString([MarshalAs(UnmanagedType.VBByRefStr)] ref string lpApplicationName, [MarshalAs(UnmanagedType.VBByRefStr)] ref string lpKeyName, [MarshalAs(UnmanagedType.VBByRefStr)] ref string lpString, [MarshalAs(UnmanagedType.VBByRefStr)] ref string lpFileName); public static void CopyTreeView(TreeView s, ref TreeView d, bool isaddrowname) { d.Nodes.Clear(); if (s == null) { d = null; return; } d.StateImageList = s.StateImageList; d.ImageList = s.ImageList; d.ImageIndex = s.ImageIndex; if (Operators.CompareString(s.ImageKey, "", TextCompare: false) != 0) { d.ImageKey = s.ImageKey; } d.CheckBoxes = s.CheckBoxes; d.LineColor = s.LineColor; d.Font = (Font)s.Font.Clone(); d.ForeColor = s.ForeColor; int num = 0; checked { int num2 = s.Nodes.Count - 1; for (int i = num; i <= num2; i++) { TreeNode d2 = d.Nodes.Add(s.Nodes[i].Text); d2.Checked = s.Nodes[i].Checked; d2.ImageIndex = s.Nodes[i].ImageIndex; if (Operators.CompareString(s.Nodes[i].ImageKey, "", TextCompare: false) != 0) { d2.ImageKey = s.Nodes[i].ImageKey; } d2.StateImageIndex = s.Nodes[i].StateImageIndex; if (Operators.CompareString(s.Nodes[i].StateImageKey, "", TextCompare: false) != 0) { d2.StateImageKey = s.Nodes[i].StateImageKey; } d2.ForeColor = s.Nodes[i].ForeColor; d2.BackColor = s.Nodes[i].BackColor; if (s.Nodes[i].NodeFont != null) { d2.NodeFont = (Font)s.Nodes[i].NodeFont.Clone(); } CopyNodes(s.Nodes[i], ref d2); } if (isaddrowname) { d.Nodes.Insert(0, "行号"); } } } private static void CopyNodes(TreeNode s, ref TreeNode d) { if (s == null) { return; } int num = 0; checked { int num2 = s.Nodes.Count - 1; for (int i = num; i <= num2; i++) { TreeNode d2 = d.Nodes.Add(s.Nodes[i].Text); d2.Checked = s.Nodes[i].Checked; d2.ImageIndex = s.Nodes[i].ImageIndex; if (Operators.CompareString(s.Nodes[i].ImageKey, "", TextCompare: false) != 0) { d2.ImageKey = s.Nodes[i].ImageKey; } d2.StateImageIndex = s.Nodes[i].StateImageIndex; if (Operators.CompareString(s.Nodes[i].StateImageKey, "", TextCompare: false) != 0) { d2.StateImageKey = s.Nodes[i].StateImageKey; } d2.ForeColor = s.Nodes[i].ForeColor; d2.BackColor = s.Nodes[i].BackColor; if (s.Nodes[i].NodeFont != null) { d2.NodeFont = (Font)s.Nodes[i].NodeFont.Clone(); } CopyNodes(s.Nodes[i], ref d2); } } } public static string GetINI(string Section, string AppName, string lpDefault, string FileName) { string source = ""; source = Strings.LSet(source, 256); GetPrivateProfileString(ref Section, ref AppName, ref lpDefault, ref source, Strings.Len(source), ref FileName); string expression = Strings.Trim(Strings.Left(source, checked(Strings.InStr(source, "\0") - 1))); expression = Strings.Replace(expression, "&
&", "\r\n"); if (expression == null) { expression = ""; } return expression; } public static long WriteINI(string Section, string AppName, string lpDefault, string FileName) { lpDefault = Strings.Replace(lpDefault, "\r\n", "&
&"); if (lpDefault == null) { lpDefault = ""; } return WritePrivateProfileString(ref Section, ref AppName, ref lpDefault, ref FileName); } public static string ConvertFontToString(Font myfont) { FontConverter fontConverter = new FontConverter(); return fontConverter.ConvertToString(myfont); } public static string ConvertColorToString(Color mycolor) { ColorConverter colorConverter = new ColorConverter(); return colorConverter.ConvertToString(mycolor); } public static Color ConvertStringToColor(string pp) { ColorConverter colorConverter = new ColorConverter(); try { object obj = colorConverter.ConvertFromString(pp); Color black = Color.Black; return (obj != null) ? ((Color)obj) : black; } catch (Exception projectError) { ProjectData.SetProjectError(projectError); Color result = Color.FromArgb(0); ProjectData.ClearProjectError(); return result; } } public static Font ConvertStringToFont(string pp) { FontConverter fontConverter = new FontConverter(); Font result; if (Operators.CompareString(pp, "(无)", TextCompare: false) == 0) { result = null; } else { try { Font font = (Font)fontConverter.ConvertFromString(pp); result = font; } catch (Exception projectError) { ProjectData.SetProjectError(projectError); result = null; ProjectData.ClearProjectError(); } } return result; } public static void CopyDataGridView(DataGridView sdv, DataGridView ddv, bool IsAddRowHeaderColumn) { CopyDataGridView(sdv, ddv); if (!IsAddRowHeaderColumn) { return; } checked { try { if (ddv.Columns.Count <= 0) { return; } DataGridViewTextBoxColumn dataGridViewTextBoxColumn = new DataGridViewTextBoxColumn(); dataGridViewTextBoxColumn.HeaderCell = (DataGridViewColumnHeaderCell)sdv.TopLeftHeaderCell.Clone(); if (sdv.TopLeftHeaderCell.HasStyle) { dataGridViewTextBoxColumn.HeaderCell.Style = sdv.TopLeftHeaderCell.Style.Clone(); } dataGridViewTextBoxColumn.Width = sdv.RowHeadersWidth; if (Operators.CompareString(dataGridViewTextBoxColumn.Name ?? "", "", TextCompare: false) == 0) { dataGridViewTextBoxColumn.Name = "行标题"; } dataGridViewTextBoxColumn.SortMode = DataGridViewColumnSortMode.NotSortable; ddv.Columns.Insert(0, dataGridViewTextBoxColumn); int rowCount = ddv.RowCount; int num = 0; int num2 = rowCount - 1; for (int i = num; i <= num2; i++) { ddv.Rows[i].Cells[0].Value = Conversions.ToString(sdv.Rows[i].HeaderCell.FormattedValue) ?? ""; if (sdv.Rows[i].HeaderCell.Style.Font != null) { ddv.Rows[i].Cells[0].Style.Font = (Font)sdv.Rows[i].HeaderCell.Style.Font.Clone(); } else if (sdv.RowHeadersDefaultCellStyle.Font != null) { ddv.Rows[i].Cells[0].Style.Font = (Font)sdv.RowHeadersDefaultCellStyle.Font.Clone(); } if (sdv.Rows[i].HeaderCell.Style.Alignment != 0) { ddv.Rows[i].Cells[0].Style.Alignment = sdv.Rows[i].HeaderCell.Style.Alignment; } else { ddv.Rows[i].Cells[0].Style.Alignment = sdv.RowHeadersDefaultCellStyle.Alignment; } if (sdv.Rows[i].HeaderCell.Style.ForeColor.ToArgb() != 0) { ddv.Rows[i].Cells[0].Style.ForeColor = sdv.Rows[i].HeaderCell.Style.ForeColor; } else if (sdv.RowHeadersDefaultCellStyle.ForeColor.ToArgb() != 0) { ddv.Rows[i].Cells[0].Style.ForeColor = sdv.RowHeadersDefaultCellStyle.ForeColor; } if (sdv.Rows[i].HeaderCell.Style.BackColor.ToArgb() != 0) { ddv.Rows[i].Cells[0].Style.BackColor = sdv.Rows[i].HeaderCell.Style.BackColor; } else if (sdv.RowHeadersDefaultCellStyle.BackColor.ToArgb() != 0) { ddv.Rows[i].Cells[0].Style.BackColor = sdv.RowHeadersDefaultCellStyle.BackColor; } if (sdv.Rows[i].HeaderCell.Style.WrapMode != 0) { ddv.Rows[i].Cells[0].Style.WrapMode = sdv.Rows[i].HeaderCell.Style.WrapMode; } else if (sdv.RowHeadersDefaultCellStyle.WrapMode != 0) { ddv.Rows[i].Cells[0].Style.WrapMode = sdv.RowHeadersDefaultCellStyle.WrapMode; } } } catch (Exception projectError) { ProjectData.SetProjectError(projectError); ProjectData.ClearProjectError(); } } } public static void CopyDataGridViewShowStatus(DataGridView sdv, DataGridView ddv, bool isprintrowheadercolumn) { progress2 progress3 = new progress2(); progress3.Show(); progress3.Label1.Text = "正在复制数据……请稍侯"; Application.DoEvents(); CopyDataGridView(sdv, ddv, isprintrowheadercolumn); progress3.Close(); progress3.Dispose(); } public static void CopyDataGridViewShowStatus(DataGridView sdv, DataGridView ddv, int fromrow, int torow, bool isprintrowheadercolumn) { progress2 progress3 = new progress2(); progress3.Show(); progress3.Label1.Text = "正在复制数据……请稍侯"; Application.DoEvents(); CopyDataGridView(sdv, ddv, fromrow, torow, isprintrowheadercolumn); progress3.Close(); progress3.Dispose(); } public static void MyMsgBox(string ss) { } public static void CopyDataGridView(DataGridView sdv, DataGridView ddv) { if (sdv == null || ddv == null) { return; } if (sdv.Equals(ddv)) { MyMsgBox("在CopyDataGridView函数中发现要复制的DGV与目标DGV完全一样"); return; } ddv.AllowUserToAddRows = false; while (ddv.ColumnCount >= 1) { ddv.Columns.RemoveAt(0); } ddv.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None; ddv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None; int columnCount = sdv.ColumnCount; int num = 0; checked { int num2 = columnCount - 1; for (int i = num; i <= num2; i++) { if (Operators.CompareString(Versioned.TypeName(sdv.Columns[i]), "DataGridViewComboBoxColumn", TextCompare: false) == 0) { DataGridViewTextBoxColumn dataGridViewTextBoxColumn = new DataGridViewTextBoxColumn(); try { dataGridViewTextBoxColumn.DefaultCellStyle = sdv.Columns[i].DefaultCellStyle.Clone(); dataGridViewTextBoxColumn.AutoSizeMode = sdv.Columns[i].AutoSizeMode; dataGridViewTextBoxColumn.DisplayIndex = sdv.Columns[i].DisplayIndex; } catch (Exception projectError) { ProjectData.SetProjectError(projectError); ProjectData.ClearProjectError(); } try { dataGridViewTextBoxColumn.HeaderCell = (DataGridViewColumnHeaderCell)sdv.Columns[i].HeaderCell.Clone(); dataGridViewTextBoxColumn.HeaderText = sdv.Columns[i].HeaderText; dataGridViewTextBoxColumn.MinimumWidth = sdv.Columns[i].MinimumWidth; dataGridViewTextBoxColumn.Resizable = sdv.Columns[i].Resizable; } catch (Exception projectError2) { ProjectData.SetProjectError(projectError2); ProjectData.ClearProjectError(); } try { dataGridViewTextBoxColumn.Name = sdv.Columns[i].Name; dataGridViewTextBoxColumn.Tag = RuntimeHelpers.GetObjectValue(sdv.Columns[i].Tag); dataGridViewTextBoxColumn.Visible = sdv.Columns[i].Visible; try { if (Operators.CompareString(Conversions.ToString(dataGridViewTextBoxColumn.Tag), "不打印", TextCompare: false) == 0) { dataGridViewTextBoxColumn.Visible = false; } } catch (Exception projectError3) { ProjectData.SetProjectError(projectError3); ProjectData.ClearProjectError(); } dataGridViewTextBoxColumn.Width = sdv.Columns[i].Width; } catch (Exception projectError4) { ProjectData.SetProjectError(projectError4); ProjectData.ClearProjectError(); } ddv.Columns.Add(dataGridViewTextBoxColumn); } else { DataGridViewColumn dataGridViewColumn = (DataGridViewColumn)sdv.Columns[i].Clone(); dataGridViewColumn.Frozen = false; try { if (Operators.CompareString(Conversions.ToString(dataGridViewColumn.Tag), "不打印", TextCompare: false) == 0) { dataGridViewColumn.Visible = false; } } catch (Exception projectError5) { ProjectData.SetProjectError(projectError5); ProjectData.ClearProjectError(); } ddv.Columns.Add(dataGridViewColumn); } try { ddv.Columns[i].ValueType = sdv.Columns[i].ValueType; } catch (Exception projectError6) { ProjectData.SetProjectError(projectError6); ProjectData.ClearProjectError(); } if (Operators.CompareString(ddv.Columns[i].Name ?? "", "", TextCompare: false) == 0) { ddv.Columns[i].Name = "第" + Conversions.ToString(i) + "列名"; } ddv.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable; ddv.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.None; } int[] array = new int[sdv.ColumnCount - 1 + 1]; int[] array2 = new int[sdv.ColumnCount - 1 + 1]; int num3 = 0; int num4 = sdv.ColumnCount - 1; for (int j = num3; j <= num4; j++) { array[j] = j; array2[j] = sdv.Columns[j].DisplayIndex; } Array.Sort(array2, array); int num5 = 0; int num6 = sdv.ColumnCount - 1; for (int k = num5; k <= num6; k++) { ddv.Columns[array[k]].DisplayIndex = sdv.Columns[array[k]].DisplayIndex; } ddv.ColumnHeadersHeightSizeMode = sdv.ColumnHeadersHeightSizeMode; ddv.ColumnHeadersHeight = sdv.ColumnHeadersHeight; ddv.ColumnHeadersVisible = sdv.ColumnHeadersVisible; if (sdv.RowCount <= 0) { return; } int num7 = sdv.RowCount; if (sdv.AllowUserToAddRows && IsNullLastRow(sdv)) { num7--; } ddv.RowCount = num7; ddv.AlternatingRowsDefaultCellStyle = sdv.AlternatingRowsDefaultCellStyle.Clone(); ddv.DefaultCellStyle = sdv.DefaultCellStyle.Clone(); ddv.RowsDefaultCellStyle = sdv.RowsDefaultCellStyle.Clone(); ddv.ColumnHeadersDefaultCellStyle = sdv.ColumnHeadersDefaultCellStyle.Clone(); int num8 = 0; int num9 = sdv.ColumnCount - 1; for (int l = num8; l <= num9; l++) { if (sdv.Columns[l].HasDefaultCellStyle) { ddv.Columns[l].DefaultCellStyle = sdv.Columns[l].DefaultCellStyle.Clone(); } } columnCount = ddv.Columns.Count - 1; string[] array3 = new string[columnCount + 1]; int num10 = 0; int num11 = columnCount; for (int m = num10; m <= num11; m++) { array3[m] = Versioned.TypeName(sdv.Columns[m]); } int num12 = 0; int num13 = num7 - 1; for (int n = num12; n <= num13; n++) { int num14 = 0; int num15 = columnCount; for (int num16 = num14; num16 <= num15; num16++) { if (Operators.CompareString(array3[num16], "DataGridViewImageColumn", TextCompare: false) == 0) { ddv.Rows[n].Cells[num16].Value = RuntimeHelpers.GetObjectValue(sdv.Rows[n].Cells[num16].Value); if (ddv.Rows[n].Cells[num16].Value != null) { try { DataGridViewImageCell dataGridViewImageCell = (DataGridViewImageCell)ddv.Rows[n].Cells[num16]; dataGridViewImageCell.ImageLayout = ((DataGridViewImageCell)sdv.Rows[n].Cells[num16]).ImageLayout; } catch (Exception projectError7) { ProjectData.SetProjectError(projectError7); ProjectData.ClearProjectError(); } } } else { ddv.Rows[n].Cells[num16].Value = Conversions.ToString(sdv.Rows[n].Cells[num16].FormattedValue) ?? ""; } if (sdv.Rows[n].Cells[num16].HasStyle) { ddv.Rows[n].Cells[num16].Style = sdv.Rows[n].Cells[num16].Style.Clone(); } try { ddv.Rows[n].Cells[num16].Tag = RuntimeHelpers.GetObjectValue(sdv.Rows[n].Cells[num16].Tag); } catch (Exception projectError8) { ProjectData.SetProjectError(projectError8); ProjectData.ClearProjectError(); } } ddv.Rows[n].Height = sdv.Rows[n].Height; ddv.Rows[n].Visible = sdv.Rows[n].Visible; if (sdv.Rows[n].HasDefaultCellStyle) { ddv.Rows[n].DefaultCellStyle = sdv.Rows[n].DefaultCellStyle.Clone(); } try { ddv.Rows[n].Tag = RuntimeHelpers.GetObjectValue(sdv.Rows[n].Tag); } catch (Exception projectError9) { ProjectData.SetProjectError(projectError9); ProjectData.ClearProjectError(); } } ddv.GridColor = sdv.GridColor; ddv.Name = sdv.Name; } } public static void CopyDataGridView(DataGridView sdv, DataGridView ddv, int fromrow, int torow, bool isprintrowheadercolumn) { if (sdv == null || ddv == null) { return; } if (sdv.Equals(ddv)) { MyMsgBox("在CopyDataGridView函数中发现要复制的DGV与目标DGV完全一样"); return; } if (fromrow < 0) { fromrow = 0; } if (torow > checked(sdv.RowCount - 1) || torow < fromrow) { torow = checked(sdv.RowCount - 1); } ddv.AllowUserToAddRows = false; while (ddv.ColumnCount >= 1) { ddv.Columns.RemoveAt(0); } ddv.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None; ddv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None; int num = 0; checked { int num2 = sdv.ColumnCount - 1; for (int i = num; i <= num2; i++) { if (Operators.CompareString(Versioned.TypeName(sdv.Columns[i]), "DataGridViewComboBoxColumn", TextCompare: false) == 0) { DataGridViewTextBoxColumn dataGridViewTextBoxColumn = new DataGridViewTextBoxColumn(); try { dataGridViewTextBoxColumn.DefaultCellStyle = sdv.Columns[i].DefaultCellStyle.Clone(); dataGridViewTextBoxColumn.AutoSizeMode = sdv.Columns[i].AutoSizeMode; dataGridViewTextBoxColumn.DisplayIndex = sdv.Columns[i].DisplayIndex; } catch (Exception projectError) { ProjectData.SetProjectError(projectError); ProjectData.ClearProjectError(); } try { dataGridViewTextBoxColumn.HeaderCell = (DataGridViewColumnHeaderCell)sdv.Columns[i].HeaderCell.Clone(); dataGridViewTextBoxColumn.HeaderText = sdv.Columns[i].HeaderText; dataGridViewTextBoxColumn.MinimumWidth = sdv.Columns[i].MinimumWidth; dataGridViewTextBoxColumn.Resizable = sdv.Columns[i].Resizable; } catch (Exception projectError2) { ProjectData.SetProjectError(projectError2); ProjectData.ClearProjectError(); } try { dataGridViewTextBoxColumn.Name = sdv.Columns[i].Name; dataGridViewTextBoxColumn.Tag = RuntimeHelpers.GetObjectValue(sdv.Columns[i].Tag); dataGridViewTextBoxColumn.Visible = sdv.Columns[i].Visible; try { if (Operators.CompareString(Conversions.ToString(dataGridViewTextBoxColumn.Tag), "不打印", TextCompare: false) == 0) { dataGridViewTextBoxColumn.Visible = false; } } catch (Exception projectError3) { ProjectData.SetProjectError(projectError3); ProjectData.ClearProjectError(); } dataGridViewTextBoxColumn.Width = sdv.Columns[i].Width; } catch (Exception projectError4) { ProjectData.SetProjectError(projectError4); ProjectData.ClearProjectError(); } ddv.Columns.Add(dataGridViewTextBoxColumn); } else { DataGridViewColumn dataGridViewColumn = (DataGridViewColumn)sdv.Columns[i].Clone(); dataGridViewColumn.Frozen = false; try { if (Operators.CompareString(Conversions.ToString(dataGridViewColumn.Tag), "不打印", TextCompare: false) == 0) { dataGridViewColumn.Visible = false; } } catch (Exception projectError5) { ProjectData.SetProjectError(projectError5); ProjectData.ClearProjectError(); } ddv.Columns.Add(dataGridViewColumn); } try { ddv.Columns[i].ValueType = sdv.Columns[i].ValueType; } catch (Exception projectError6) { ProjectData.SetProjectError(projectError6); ProjectData.ClearProjectError(); } if (Operators.CompareString(ddv.Columns[i].Name ?? "", "", TextCompare: false) == 0) { ddv.Columns[i].Name = "第" + Conversions.ToString(i) + "列名"; } ddv.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable; ddv.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.None; } int[] array = new int[sdv.ColumnCount - 1 + 1]; int[] array2 = new int[sdv.ColumnCount - 1 + 1]; int num3 = 0; int num4 = sdv.ColumnCount - 1; for (int j = num3; j <= num4; j++) { array[j] = j; array2[j] = sdv.Columns[j].DisplayIndex; } Array.Sort(array2, array); int num5 = 0; int num6 = sdv.ColumnCount - 1; for (int k = num5; k <= num6; k++) { ddv.Columns[array[k]].DisplayIndex = sdv.Columns[array[k]].DisplayIndex; } ddv.ColumnHeadersHeightSizeMode = sdv.ColumnHeadersHeightSizeMode; ddv.ColumnHeadersHeight = sdv.ColumnHeadersHeight; ddv.ColumnHeadersVisible = sdv.ColumnHeadersVisible; if (sdv.RowCount <= 0) { return; } int rowCount = torow - fromrow + 1; ddv.RowCount = rowCount; ddv.AlternatingRowsDefaultCellStyle = sdv.AlternatingRowsDefaultCellStyle.Clone(); ddv.DefaultCellStyle = sdv.DefaultCellStyle.Clone(); ddv.RowsDefaultCellStyle = sdv.RowsDefaultCellStyle.Clone(); ddv.ColumnHeadersDefaultCellStyle = sdv.ColumnHeadersDefaultCellStyle.Clone(); int num7 = 0; int num8 = sdv.ColumnCount - 1; for (int l = num7; l <= num8; l++) { if (sdv.Columns[l].HasDefaultCellStyle) { ddv.Columns[l].DefaultCellStyle = sdv.Columns[l].DefaultCellStyle.Clone(); } } int num9 = fromrow; int num10 = torow; for (int m = num9; m <= num10; m++) { int num11 = 0; int num12 = ddv.Columns.Count - 1; for (int n = num11; n <= num12; n++) { if (Operators.CompareString(Versioned.TypeName(sdv.Columns[n]), "DataGridViewImageColumn", TextCompare: false) == 0) { ddv.Rows[m - fromrow].Cells[n].Value = RuntimeHelpers.GetObjectValue(sdv.Rows[m].Cells[n].Value); if (ddv.Rows[m - fromrow].Cells[n].Value != null) { try { DataGridViewImageCell dataGridViewImageCell = (DataGridViewImageCell)ddv.Rows[m - fromrow].Cells[n]; dataGridViewImageCell.ImageLayout = ((DataGridViewImageCell)sdv.Rows[m].Cells[n]).ImageLayout; } catch (Exception projectError7) { ProjectData.SetProjectError(projectError7); ProjectData.ClearProjectError(); } } } else { ddv.Rows[m - fromrow].Cells[n].Value = Conversions.ToString(sdv.Rows[m].Cells[n].FormattedValue) ?? ""; } if (sdv.Rows[m].Cells[n].HasStyle) { ddv.Rows[m - fromrow].Cells[n].Style = sdv.Rows[m].Cells[n].Style.Clone(); } try { ddv.Rows[m - fromrow].Cells[n].Tag = RuntimeHelpers.GetObjectValue(sdv.Rows[m].Cells[n].Tag); } catch (Exception projectError8) { ProjectData.SetProjectError(projectError8); ProjectData.ClearProjectError(); } } ddv.Rows[m - fromrow].Height = sdv.Rows[m].Height; ddv.Rows[m - fromrow].Visible = sdv.Rows[m].Visible; if (sdv.Rows[m].HasDefaultCellStyle) { ddv.Rows[m - fromrow].DefaultCellStyle = sdv.Rows[m].DefaultCellStyle.Clone(); } try { ddv.Rows[m - fromrow].Tag = RuntimeHelpers.GetObjectValue(sdv.Rows[m].Tag); } catch (Exception projectError9) { ProjectData.SetProjectError(projectError9); ProjectData.ClearProjectError(); } } ddv.GridColor = sdv.GridColor; ddv.Name = sdv.Name; if (!isprintrowheadercolumn) { return; } try { if (ddv.Columns.Count <= 0) { return; } DataGridViewTextBoxColumn dataGridViewTextBoxColumn2 = new DataGridViewTextBoxColumn(); dataGridViewTextBoxColumn2.HeaderCell = (DataGridViewColumnHeaderCell)sdv.TopLeftHeaderCell.Clone(); if (sdv.TopLeftHeaderCell.HasStyle) { dataGridViewTextBoxColumn2.HeaderCell.Style = sdv.TopLeftHeaderCell.Style.Clone(); } dataGridViewTextBoxColumn2.Width = sdv.RowHeadersWidth; if (Operators.CompareString(dataGridViewTextBoxColumn2.Name ?? "", "", TextCompare: false) == 0) { dataGridViewTextBoxColumn2.Name = "平平自创"; } dataGridViewTextBoxColumn2.SortMode = DataGridViewColumnSortMode.NotSortable; ddv.Columns.Insert(0, dataGridViewTextBoxColumn2); rowCount = ddv.RowCount; int num13 = fromrow; int num14 = torow; for (int num15 = num13; num15 <= num14; num15++) { ddv.Rows[num15 - fromrow].Cells[0].Value = Conversions.ToString(sdv.Rows[num15].HeaderCell.FormattedValue) ?? ""; if (sdv.Rows[num15].HeaderCell.Style.Font != null) { ddv.Rows[num15 - fromrow].Cells[0].Style.Font = (Font)sdv.Rows[num15].HeaderCell.Style.Font.Clone(); } else if (sdv.RowHeadersDefaultCellStyle.Font != null) { ddv.Rows[num15 - fromrow].Cells[0].Style.Font = (Font)sdv.RowHeadersDefaultCellStyle.Font.Clone(); } if (sdv.Rows[num15].HeaderCell.Style.Alignment != 0) { ddv.Rows[num15 - fromrow].Cells[0].Style.Alignment = sdv.Rows[num15].HeaderCell.Style.Alignment; } else { ddv.Rows[num15 - fromrow].Cells[0].Style.Alignment = sdv.RowHeadersDefaultCellStyle.Alignment; } if (sdv.Rows[num15].HeaderCell.Style.ForeColor.ToArgb() != 0) { ddv.Rows[num15 - fromrow].Cells[0].Style.ForeColor = sdv.Rows[num15].HeaderCell.Style.ForeColor; } else if (sdv.RowHeadersDefaultCellStyle.ForeColor.ToArgb() != 0) { ddv.Rows[num15 - fromrow].Cells[0].Style.ForeColor = sdv.RowHeadersDefaultCellStyle.ForeColor; } if (sdv.Rows[num15].HeaderCell.Style.BackColor.ToArgb() != 0) { ddv.Rows[num15 - fromrow].Cells[0].Style.BackColor = sdv.Rows[num15].HeaderCell.Style.BackColor; } else if (sdv.RowHeadersDefaultCellStyle.BackColor.ToArgb() != 0) { ddv.Rows[num15 - fromrow].Cells[0].Style.BackColor = sdv.RowHeadersDefaultCellStyle.BackColor; } if (sdv.Rows[num15].HeaderCell.Style.WrapMode != 0) { ddv.Rows[num15 - fromrow].Cells[0].Style.WrapMode = sdv.Rows[num15].HeaderCell.Style.WrapMode; } else if (sdv.RowHeadersDefaultCellStyle.WrapMode != 0) { ddv.Rows[num15 - fromrow].Cells[0].Style.WrapMode = sdv.RowHeadersDefaultCellStyle.WrapMode; } } } catch (Exception projectError10) { ProjectData.SetProjectError(projectError10); ProjectData.ClearProjectError(); } } } public static void DelDGVAllUnvisibleCols(DataGridView dgv) { if (dgv == null) { return; } checked { try { int columnCount = dgv.ColumnCount; for (int i = columnCount - 1; i >= 0; i += -1) { if (!dgv.Columns[i].Visible) { dgv.Columns.RemoveAt(i); } } } catch (Exception projectError) { ProjectData.SetProjectError(projectError); ProjectData.ClearProjectError(); } } } public static void AddDGVRowID(DataGridView dgv) { if (dgv.Columns.Count <= 0) { return; } DataGridViewTextBoxColumn dataGridViewTextBoxColumn = new DataGridViewTextBoxColumn(); dataGridViewTextBoxColumn.HeaderText = "行号"; dataGridViewTextBoxColumn.DefaultCellStyle = dgv.DefaultCellStyle.Clone(); dataGridViewTextBoxColumn.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; dataGridViewTextBoxColumn.Width = 40; dataGridViewTextBoxColumn.Name = "游平自创"; try { dgv.Columns.Insert(0, dataGridViewTextBoxColumn); } catch (Exception projectError) { ProjectData.SetProjectError(projectError); dataGridViewTextBoxColumn.Frozen = true; dgv.Columns.Insert(0, dataGridViewTextBoxColumn); ProjectData.ClearProjectError(); } checked { try { int num = 1; int num2 = 0; int num3 = dgv.RowCount - 1; for (int i = num2; i <= num3; i++) { if (dgv.Rows[i].Visible) { dgv.Rows[i].Cells[0].Value = Conversions.ToString(num); num++; } } } catch (Exception projectError2) { ProjectData.SetProjectError(projectError2); ProjectData.ClearProjectError(); } } } public static int GetDGVVisibleRows(DataGridView dgv) { if (dgv == null) { return 0; } int num = 0; int num2 = 0; checked { int num3 = dgv.RowCount - 1; for (int i = num2; i <= num3; i++) { if (dgv.Rows[i].Visible) { num++; } } return num; } } public static bool IsNullLastRow(DataGridView dgv) { checked { bool result; if (dgv == null) { result = false; } else if (dgv.RowCount <= 0) { result = false; } else { int index = dgv.RowCount - 1; bool flag = true; try { int num = 0; int num2 = dgv.ColumnCount - 1; for (int i = num; i <= num2; i++) { if (Operators.CompareString(Versioned.TypeName(dgv.Columns[i]), "DataGridViewImageColumn", TextCompare: false) != 0 && Operators.ConditionalCompareObjectNotEqual(Operators.ConcatenateObject(dgv.Rows[index].Cells[i].Value, ""), "", TextCompare: false)) { flag = false; break; } } result = (flag ? true : false); } catch (Exception projectError) { ProjectData.SetProjectError(projectError); result = false; ProjectData.ClearProjectError(); } } return result; } } public static void SetDGVSelectedRowsVisible(DataGridView sdgv, DataGridView ddgv, int baserows) { checked { if (sdgv != null && ddgv != null) { int num = 0; int num2 = ddgv.Rows.Count - 1; for (int i = num; i <= num2; i++) { ddgv.Rows[i].Visible = false; } List dGVSelectedRows = GetDGVSelectedRows(sdgv); int num3 = 0; int num4 = dGVSelectedRows.Count - 1; for (int j = num3; j <= num4; j++) { ddgv.Rows[dGVSelectedRows[j] - baserows].Visible = true; } } } } public static void SetDGVSelectedColumnsVisible(DataGridView sdgv, DataGridView ddgv) { if (sdgv == null || ddgv == null) { return; } checked { bool[] array = new bool[sdgv.Columns.Count - 1 + 1]; int num = 0; int num2 = sdgv.Columns.Count - 1; for (int i = num; i <= num2; i++) { array[i] = false; } List dGVSelectedCols = GetDGVSelectedCols(sdgv); int num3 = 0; int num4 = dGVSelectedCols.Count - 1; for (int j = num3; j <= num4; j++) { array[dGVSelectedCols[j]] = true; } int num5 = 0; int num6 = ddgv.Columns.Count - 1; for (int k = num5; k <= num6; k++) { if (!array[k]) { ddgv.Columns[k].Visible = false; } } } } public static List GetDGVSelectedCols(DataGridView dgv) { if (dgv == null) { return null; } if (dgv.SelectedCells.Count <= 0) { return null; } checked { int num = dgv.RowCount - 1; int num2 = dgv.ColumnCount - 1; List list = new List(); int num3 = 0; int num4 = num2; for (int i = num3; i <= num4; i++) { if (!dgv.Columns[i].Visible) { continue; } int num5 = 0; int num6 = num; for (int j = num5; j <= num6; j++) { if (dgv.Rows[j].Cells[i].Selected) { list.Add(i); break; } } } return list; } } public static List GetDGVSelectedRows(DataGridView dgv) { if (dgv == null) { return null; } if (dgv.SelectedCells.Count <= 0) { return null; } checked { int num = dgv.RowCount - 1; int num2 = dgv.ColumnCount - 1; List list = new List(); int num3 = 0; int num4 = num; for (int i = num3; i <= num4; i++) { if (!dgv.Rows[i].Visible) { continue; } int num5 = 0; int num6 = num2; for (int j = num5; j <= num6; j++) { if (dgv.Rows[i].Cells[j].Selected) { list.Add(i); break; } } } return list; } } public static void SetDGVSelectedRowsAndColumnsVisible(DataGridView sdgv, DataGridView ddgv, int baserows) { SetDGVSelectedRowsVisible(sdgv, ddgv, baserows); SetDGVSelectedColumnsVisible(sdgv, ddgv); } public static int GetDGVSelectedMinRowIndex(DataGridView dgv) { if (dgv == null) { return -1; } if (dgv.RowCount <= 0) { return -1; } if (dgv.SelectedCells.Count <= 0) { return -1; } checked { int num = dgv.RowCount - 1; int num2 = dgv.ColumnCount - 1; int num3 = 0; int num4 = num; for (int i = num3; i <= num4; i++) { int num5 = 0; int num6 = num2; for (int j = num5; j <= num6; j++) { if (dgv.Rows[i].Cells[j].Selected) { return i; } } } return -1; } } public static int GetDGVSelectedMaxRowIndex(DataGridView dgv) { if (dgv == null) { return -1; } if (dgv.RowCount <= 0) { return -1; } if (dgv.SelectedCells.Count <= 0) { return -1; } checked { int num = dgv.RowCount - 1; int num2 = dgv.ColumnCount - 1; for (int i = num; i >= 0; i += -1) { int num3 = 0; int num4 = num2; for (int j = num3; j <= num4; j++) { if (dgv.Rows[i].Cells[j].Selected) { return i; } } } return -1; } } public static DataGridView ConvertDataGridToDGV(DataGrid myd, bool autoresizewidth, bool autoresizeheight) { DataGridView dataGridView = new DataGridView(); int count = myd.BindingContext[RuntimeHelpers.GetObjectValue(myd.DataSource), myd.DataMember].Count; if (count <= 0) { return null; } int num = 0; checked { try { while (true) { Conversions.ToString(myd[0, num]); num++; } } catch (Exception projectError) { ProjectData.SetProjectError(projectError); ProjectData.ClearProjectError(); } int num2 = 0; int num3 = count - 1; for (int i = num2; i <= num3; i++) { int num4 = 0; int num5 = num - 1; for (int j = num4; j <= num5; j++) { } } if (num <= 0) { return null; } dataGridView.RowCount = count; dataGridView.ColumnCount = num; if (myd.TableStyles.Count <= 0) { DataGridTableStyle table = new DataGridTableStyle((CurrencyManager)myd.BindingContext[RuntimeHelpers.GetObjectValue(myd.DataSource), myd.DataMember]); myd.TableStyles.Add(table); } int num6 = 0; int num7 = num - 1; for (int k = num6; k <= num7; k++) { dataGridView.Columns[k].HeaderText = myd.TableStyles[0].GridColumnStyles[k].HeaderText ?? ""; dataGridView.Columns[k].DefaultCellStyle.Alignment = ConvertAlignment(myd.TableStyles[0].GridColumnStyles[k].Alignment); dataGridView.Columns[k].Width = myd.TableStyles[0].GridColumnStyles[k].Width; } dataGridView.ColumnHeadersDefaultCellStyle.Font = myd.HeaderFont; dataGridView.ColumnHeadersDefaultCellStyle.ForeColor = myd.HeaderForeColor; dataGridView.ColumnHeadersDefaultCellStyle.BackColor = myd.HeaderBackColor; int num8 = 0; int num9 = count - 1; for (int l = num8; l <= num9; l++) { int num10 = 0; int num11 = num - 1; for (int m = num10; m <= num11; m++) { dataGridView.Rows[l].Cells[m].Value = Operators.ConcatenateObject(myd[l, m], ""); } } dataGridView.RowHeadersWidth = myd.RowHeaderWidth; dataGridView.AlternatingRowsDefaultCellStyle.BackColor = myd.AlternatingBackColor; dataGridView.DefaultCellStyle.BackColor = myd.BackColor; dataGridView.DefaultCellStyle.Font = myd.Font; dataGridView.DefaultCellStyle.ForeColor = myd.ForeColor; dataGridView.GridColor = myd.GridLineColor; int num12 = 0; int num13 = num - 1; for (int n = num12; n <= num13; n++) { dataGridView.Columns[n].DefaultCellStyle.WrapMode = DataGridViewTriState.True; } if (autoresizewidth) { dataGridView.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells); } if (autoresizeheight) { dataGridView.AutoResizeRows(DataGridViewAutoSizeRowsMode.AllCells); } return dataGridView; } } private static DataGridViewContentAlignment ConvertAlignment(HorizontalAlignment ss) { DataGridViewContentAlignment result; switch (ss) { case HorizontalAlignment.Left: result = DataGridViewContentAlignment.MiddleLeft; break; case HorizontalAlignment.Right: result = DataGridViewContentAlignment.MiddleRight; break; case HorizontalAlignment.Center: result = DataGridViewContentAlignment.MiddleCenter; break; default: result = DataGridViewContentAlignment.MiddleLeft; break; } return result; } private static bool IsColumNameExists(DataGridView dd, string tt) { if (dd == null) { return false; } if (Operators.CompareString(tt ?? "", "", TextCompare: false) == 0) { return false; } string[] array = Strings.Split(tt, ";"); int num = 0; checked { int num2 = array.Length - 1; for (int i = num; i <= num2; i++) { try { _ = dd.Columns[array[i]].DisplayIndex; } catch (Exception projectError) { ProjectData.SetProjectError(projectError); bool result = false; ProjectData.ClearProjectError(); return result; } } return true; } } public static void CreateHz(DataGridView dgv, int srows, string myhzcolumns, Font hzfont, Color hzforecolor, Color hzbackcolor, StringAlignment SumNumberAlign) { if (dgv.AllowUserToAddRows) { dgv.AllowUserToAddRows = false; } checked { if (dgv.RowCount > srows) { dgv.Rows.RemoveAt(dgv.RowCount - 1); } if (!IsColumNameExists(dgv, myhzcolumns)) { myhzcolumns = ""; } if (Operators.CompareString(myhzcolumns ?? "", "", TextCompare: false) == 0) { return; } string[] array = Strings.Split(myhzcolumns, ";"); if (array.Length < 1) { return; } if (dgv.RowCount == srows) { dgv.Rows.Add(); } decimal num = 0m; int num2 = 0; int num3 = array.Length - 1; string text; for (int i = num2; i <= num3; i++) { num = 0m; try { int num4 = 0; int num5 = srows - 1; for (int j = num4; j <= num5; j++) { if (dgv.Rows[j].Visible) { text = Conversions.ToString(dgv.Rows[j].Cells[array[i]].Value); if (Versioned.IsNumeric(text)) { num = decimal.Add(num, Conversions.ToDecimal(text)); } } } if (Operators.CompareString(Versioned.TypeName(dgv.Columns[array[i]]), "DataGridViewCheckBoxColumn", TextCompare: false) == 0) { dgv.Rows[dgv.RowCount - 1].Cells[array[i]].Value = false; } else if (Operators.CompareString(Versioned.TypeName(dgv.Columns[array[i]]), "DataGridViewImageColumn", TextCompare: false) == 0) { dgv.Rows[dgv.RowCount - 1].Cells[array[i]].Value = null; } else if (decimal.Compare(new decimal(Convert.ToInt64(num)), num) == 0) { dgv.Rows[dgv.RowCount - 1].Cells[array[i]].Value = Conversions.ToString(num); } else { dgv.Rows[dgv.RowCount - 1].Cells[array[i]].Value = Conversions.ToString(num); } } catch (Exception projectError) { ProjectData.SetProjectError(projectError); if (Operators.CompareString(Versioned.TypeName(dgv.Columns[array[i]]), "DataGridViewCheckBoxColumn", TextCompare: false) == 0) { dgv.Rows[dgv.RowCount - 1].Cells[array[i]].Value = false; } else if (Operators.CompareString(Versioned.TypeName(dgv.Columns[array[i]]), "DataGridViewImageColumn", TextCompare: false) == 0) { dgv.Rows[dgv.RowCount - 1].Cells[array[i]].Value = null; } else { dgv.Rows[dgv.RowCount - 1].Cells[array[i]].Value = ""; } ProjectData.ClearProjectError(); } } if (hzfont != null) { dgv.Rows[dgv.RowCount - 1].DefaultCellStyle.Font = hzfont; } if (hzforecolor.ToArgb() != 0) { dgv.Rows[dgv.RowCount - 1].DefaultCellStyle.ForeColor = hzforecolor; } if (hzbackcolor.ToArgb() != 0) { dgv.Rows[dgv.RowCount - 1].DefaultCellStyle.BackColor = hzbackcolor; } text = GetDGVFirstColumnName(dgv); if (Operators.CompareString(text, "", TextCompare: false) != 0) { dgv.Rows[dgv.RowCount - 1].Cells[text].Value = "总计"; } dgv.Rows[dgv.RowCount - 1].Cells[text].Style.Alignment = DataGridViewContentAlignment.MiddleCenter; switch (SumNumberAlign) { case StringAlignment.Near: dgv.Rows[dgv.RowCount - 1].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft; break; case StringAlignment.Center: dgv.Rows[dgv.RowCount - 1].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; break; case StringAlignment.Far: dgv.Rows[dgv.RowCount - 1].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; break; } } } public static void CreateFzHz(DataGridView dgv, string groupcolumn, string myhzcolumns, Font hzfont, Color hzforecolor, Color hzbackcolor, bool addrowid, bool addrowidnew, StringAlignment SumNumberAlign) { if (dgv.AllowUserToAddRows) { dgv.AllowUserToAddRows = false; } if (addrowid) { AddDGVRowID(dgv); } groupcolumn = groupcolumn ?? ""; if (Operators.CompareString(groupcolumn, "", TextCompare: false) == 0) { return; } string[] array = Strings.Split(myhzcolumns, ";"); if (array.Length < 1) { return; } int num = 1; int fromrow = 0; if (Operators.CompareString(Versioned.TypeName(dgv.Columns[groupcolumn]), "DataGridViewImageColumn", TextCompare: false) == 0) { return; } string left = Conversions.ToString(dgv.Rows[0].Cells[groupcolumn].FormattedValue) ?? ""; checked { if (dgv.Rows[0].Visible && addrowid) { dgv.Rows[0].Cells[0].Value = Conversions.ToString(num); num++; } int num2 = dgv.RowCount; if (!IsColumNameExists(dgv, myhzcolumns)) { myhzcolumns = ""; } if (Operators.CompareString(myhzcolumns ?? "", "", TextCompare: false) != 0) { num2--; } for (int i = 1; i <= num2 - 1; i++) { if (Operators.CompareString(left, Conversions.ToString(dgv.Rows[i].Cells[groupcolumn].FormattedValue) ?? "", TextCompare: false) != 0) { left = Conversions.ToString(dgv.Rows[i].Cells[groupcolumn].FormattedValue) ?? ""; if (addrowidnew) { num = 1; } int torow = i - 1; if (CreateHzRow(dgv, groupcolumn, myhzcolumns, hzfont, hzforecolor, hzbackcolor, fromrow, torow, SumNumberAlign)) { num2 = dgv.RowCount; num2--; fromrow = i + 1; i++; } else { fromrow = i; } } if (dgv.Rows[i].Visible && addrowid) { dgv.Rows[i].Cells[0].Value = Conversions.ToString(num); num++; } } if (Operators.CompareString(myhzcolumns ?? "", "", TextCompare: false) == 0) { CreateHzRow(dgv, groupcolumn, myhzcolumns, hzfont, hzforecolor, hzbackcolor, fromrow, dgv.RowCount - 1, SumNumberAlign); } else { CreateHzRow(dgv, groupcolumn, myhzcolumns, hzfont, hzforecolor, hzbackcolor, fromrow, dgv.RowCount - 1 - 1, SumNumberAlign); } } } private static bool CreateHzRow(DataGridView dgv, string groupcolumn, string myhzcolumns, Font hzfont, Color hzforecolor, Color hzbackcolor, int fromrow, int torow, StringAlignment SumNumberAlign) { checked { int num = torow + 1; decimal num2 = 0m; if (Operators.CompareString(myhzcolumns ?? "", "", TextCompare: false) == 0) { dgv.Rows[torow].Cells[groupcolumn].Tag = "分组"; return false; } string[] array = Strings.Split(myhzcolumns, ";"); if (array.Length < 1) { return false; } int num3 = 0; for (int i = fromrow; i <= torow; i++) { if (dgv.Rows[i].Visible) { num3++; } } if (num3 == 0) { return false; } if (num >= dgv.RowCount) { dgv.Rows.Add(); } else { dgv.Rows.Insert(num); } int num4 = 0; int num5 = array.Length - 1; string text; for (int j = num4; j <= num5; j++) { num2 = 0m; try { for (int k = fromrow; k <= torow; k++) { if (dgv.Rows[k].Visible) { text = Conversions.ToString(dgv.Rows[k].Cells[array[j]].Value); if (Versioned.IsNumeric(text)) { num2 = decimal.Add(num2, Conversions.ToDecimal(text)); } } } if (Operators.CompareString(Versioned.TypeName(dgv.Columns[array[j]]), "DataGridViewCheckBoxColumn", TextCompare: false) == 0) { dgv.Rows[num].Cells[array[j]].Value = false; } else if (Operators.CompareString(Versioned.TypeName(dgv.Columns[array[j]]), "DataGridViewImageColumn", TextCompare: false) == 0) { dgv.Rows[num].Cells[array[j]].Value = null; } else if (decimal.Compare(new decimal(Convert.ToInt64(num2)), num2) == 0) { dgv.Rows[num].Cells[array[j]].Value = Conversions.ToString(num2); } else { dgv.Rows[num].Cells[array[j]].Value = Conversions.ToString(num2); } } catch (Exception projectError) { ProjectData.SetProjectError(projectError); if (Operators.CompareString(Versioned.TypeName(dgv.Columns[array[j]]), "DataGridViewCheckBoxColumn", TextCompare: false) == 0) { dgv.Rows[num].Cells[array[j]].Value = false; } else if (Operators.CompareString(Versioned.TypeName(dgv.Columns[array[j]]), "DataGridViewImageColumn", TextCompare: false) == 0) { dgv.Rows[num].Cells[array[j]].Value = null; } else { dgv.Rows[num].Cells[array[j]].Value = ""; } ProjectData.ClearProjectError(); } } if (hzfont != null) { dgv.Rows[num].DefaultCellStyle.Font = hzfont; } if (hzforecolor.ToArgb() != 0) { dgv.Rows[num].DefaultCellStyle.ForeColor = hzforecolor; } if (hzbackcolor.ToArgb() != 0) { dgv.Rows[num].DefaultCellStyle.BackColor = hzbackcolor; } dgv.Rows[num].Cells[groupcolumn].Value = RuntimeHelpers.GetObjectValue(dgv.Rows[fromrow].Cells[groupcolumn].Value); dgv.Rows[num].Cells[groupcolumn].Style.Alignment = DataGridViewContentAlignment.MiddleCenter; text = GetDGVFirstColumnName(dgv); if (Operators.CompareString(text, "", TextCompare: false) != 0) { dgv.Rows[num].Cells[text].Value = "小计"; } dgv.Rows[num].Cells[text].Style.Alignment = DataGridViewContentAlignment.MiddleCenter; dgv.Rows[num].Cells[groupcolumn].Tag = "分组"; switch (SumNumberAlign) { case StringAlignment.Near: dgv.Rows[num].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft; break; case StringAlignment.Center: dgv.Rows[num].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; break; case StringAlignment.Far: dgv.Rows[num].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; break; } return true; } } public static string GetDGVFirstColumnName(DataGridView dgv) { string result = ""; int num = -1; int num2 = 0; checked { int num3 = dgv.ColumnCount - 1; for (int i = num2; i <= num3; i++) { if (num == -1) { if (dgv.Columns[i].Visible) { num = dgv.Columns[i].DisplayIndex; result = dgv.Columns[i].Name; } } else if (dgv.Columns[i].Visible && dgv.Columns[i].DisplayIndex < num) { num = dgv.Columns[i].DisplayIndex; result = dgv.Columns[i].Name; } } return result; } } public static bool IsHzColumn(string myhzcolumns, string columname) { if (Operators.CompareString(myhzcolumns, "", TextCompare: false) == 0 || myhzcolumns == null) { return false; } string[] array = Strings.Split(myhzcolumns, ";"); if (array.Length <= 0) { return false; } int num = 0; checked { int num2 = array.Length - 1; for (int i = num; i <= num2; i++) { if (Operators.CompareString(array[i], columname, TextCompare: false) == 0) { return true; } } return false; } } public static bool IsValidPrinterName(string printername) { bool result = false; try { IEnumerator enumerator = PrinterSettings.InstalledPrinters.GetEnumerator(); while (enumerator.MoveNext()) { string str = Conversions.ToString(enumerator.Current); str = Strings.Trim(str); if (Operators.CompareString(printername.ToLower(), str.ToLower(), TextCompare: false) == 0) { result = true; break; } } } finally { IEnumerator enumerator2 = null; if (enumerator2 is IDisposable) { (enumerator2 as IDisposable).Dispose(); } } return result; } public static void CreatePaper(string printername, string papername, int width, int height) { PrinterSettings printerSettings = new PrinterSettings(); if (!IsValidPrinterName(printername)) { printername = printerSettings.PrinterName; } PaperSize printForm = definepaper.GetPrintForm(printername, papername); if (printForm != null) { if (checked((printForm.Width != (int)Math.Round(Convert.ToDouble(decimal.Multiply(new decimal(width), 10m)) / 2.54)) | (printForm.Height != (int)Math.Round(Convert.ToDouble(decimal.Multiply(new decimal(height), 10m)) / 2.54)))) { definepaper.SetPrintForm(printername, papername, width, height); } } else { definepaper.SetPrintForm(printername, papername, width, height); } } public static bool IsValidPaper(string printername, string papername) { PrinterSettings printerSettings = new PrinterSettings(); if (!IsValidPrinterName(printername)) { printername = printerSettings.PrinterName; } return definepaper.GetPrintForm(printername, papername) != null; } public static int ConvertPixlsToTwips(float x, bool isx) { float num = (float)((double)G_ruler.ConvertToMM(x, isx) * 56.7); return checked((int)Math.Round(num)); } public static float ConvertTwipsToPixls(float x, bool isx) { _ = (double)x / 56.7; return (float)((double)G_ruler.ConvertFromMM(x, isx) * 5.67); } public static float ConvertInchToCm(float xx) { return (float)((double)xx * 2.54); } public static float ConvertInchToMm(float xx) { return (float)((double)xx * 25.4); } public static float ConvertCmToInch(float xx) { return (float)((double)xx / 2.54); } public static float ConvertMmToInch(float xx) { return (float)((double)xx / 25.4); } public static string ConvertImageToString(string picturefile) { checked { string result; try { FileStream fileStream = new FileStream(picturefile, FileMode.Open, FileAccess.Read, FileShare.Read); byte[] array = new byte[(int)(fileStream.Length - 1) + 1]; fileStream.Read(array, 0, (int)fileStream.Length); fileStream.Close(); result = Convert.ToBase64String(array); } catch (Exception projectError) { ProjectData.SetProjectError(projectError); result = ""; ProjectData.ClearProjectError(); } return result; } } public static string ConvertImageToString(Image img) { string result; if (img == null) { result = ""; } else { try { string tempFileName = MyProject.Computer.FileSystem.GetTempFileName(); img.Save(tempFileName, ImageFormat.Png); string text = ConvertImageToString(tempFileName); try { MyProject.Computer.FileSystem.DeleteFile(tempFileName); } catch (Exception projectError) { ProjectData.SetProjectError(projectError); ProjectData.ClearProjectError(); } result = text; } catch (Exception projectError2) { ProjectData.SetProjectError(projectError2); result = ""; ProjectData.ClearProjectError(); } } return result; } public static Image ConvertStringToImage(string picturestring) { Image result; if (Operators.CompareString(picturestring ?? "", "", TextCompare: false) == 0) { result = null; } else { try { byte[] buffer = Convert.FromBase64String(picturestring); MemoryStream stream = new MemoryStream(buffer); result = Image.FromStream(stream); } catch (Exception projectError) { ProjectData.SetProjectError(projectError); result = null; ProjectData.ClearProjectError(); } } return result; } public static string ConvertIcoToString(Icon img) { checked { string result; try { MemoryStream memoryStream = new MemoryStream(); img.Save(memoryStream); memoryStream.Position = 0L; byte[] array = new byte[(int)(memoryStream.Length - 1) + 1]; memoryStream.Read(array, 0, (int)memoryStream.Length); memoryStream.Close(); result = Convert.ToBase64String(array); } catch (Exception projectError) { ProjectData.SetProjectError(projectError); result = ""; ProjectData.ClearProjectError(); } return result; } } public static Icon ConvertStringToIcon(string picturestring) { Icon result; if (Operators.CompareString(picturestring ?? "", "", TextCompare: false) == 0) { result = null; } else { try { byte[] buffer = Convert.FromBase64String(picturestring); MemoryStream stream = new MemoryStream(buffer); result = new Icon(stream); } catch (Exception projectError) { ProjectData.SetProjectError(projectError); result = null; ProjectData.ClearProjectError(); } } return result; } private static DataGridView ConvertListViewToDGV2(ListView lv) { if (lv == null) { return null; } DataGridView dataGridView = new DataGridView(); dataGridView.AllowUserToAddRows = false; dataGridView.RowCount = lv.Items.Count; dataGridView.ColumnCount = lv.Columns.Count; try { dataGridView.DefaultCellStyle.Font = (Font)lv.Font.Clone(); } catch (Exception projectError) { ProjectData.SetProjectError(projectError); ProjectData.ClearProjectError(); } dataGridView.ForeColor = lv.ForeColor; dataGridView.DefaultCellStyle.ForeColor = lv.ForeColor; int num = 0; checked { int num2 = lv.Columns.Count - 1; for (int i = num; i <= num2; i++) { dataGridView.Columns[i].HeaderText = lv.Columns[i].Text; try { dataGridView.Columns[i].DefaultCellStyle.Font = (Font)lv.Font.Clone(); } catch (Exception projectError2) { ProjectData.SetProjectError(projectError2); ProjectData.ClearProjectError(); } dataGridView.Columns[i].Width = lv.Columns[i].Width; dataGridView.Columns[i].DisplayIndex = lv.Columns[i].DisplayIndex; } int num3 = 0; int num4 = lv.Items.Count - 1; for (int j = num3; j <= num4; j++) { CopyListViewItemToDGV(lv, lv.Items[j], dataGridView.Rows[j]); } return dataGridView; } } public static DataGridView ConvertListViewToDGV(ListView lv) { if (lv == null) { return null; } if (!lv.ShowGroups) { return ConvertListViewToDGV2(lv); } DataGridView dataGridView = new DataGridView(); dataGridView.ColumnCount = lv.Columns.Count; dataGridView.AllowUserToAddRows = false; try { dataGridView.DefaultCellStyle.Font = (Font)lv.Font.Clone(); } catch (Exception projectError) { ProjectData.SetProjectError(projectError); ProjectData.ClearProjectError(); } dataGridView.ForeColor = lv.ForeColor; dataGridView.DefaultCellStyle.ForeColor = lv.ForeColor; int num = 0; checked { int num2 = lv.Columns.Count - 1; for (int i = num; i <= num2; i++) { dataGridView.Columns[i].HeaderText = lv.Columns[i].Text; try { dataGridView.Columns[i].DefaultCellStyle.Font = (Font)lv.Font.Clone(); } catch (Exception projectError2) { ProjectData.SetProjectError(projectError2); ProjectData.ClearProjectError(); } dataGridView.Columns[i].Width = lv.Columns[i].Width; dataGridView.Columns[i].DisplayIndex = lv.Columns[i].DisplayIndex; } bool flag = false; int num3 = 0; int num4 = lv.Items.Count - 1; for (int j = num3; j <= num4; j++) { if (lv.Items[j].Group == null) { flag = true; break; } } if (flag) { dataGridView.RowCount++; DataGridViewRow currow = dataGridView.Rows[dataGridView.RowCount - 1]; CopyListViewGroutItemToDGV(lv, "Default", HorizontalAlignment.Left, currow); int num5 = 0; int num6 = lv.Items.Count - 1; for (int k = num5; k <= num6; k++) { if (lv.Items[k].Group == null) { dataGridView.RowCount++; currow = dataGridView.Rows[dataGridView.RowCount - 1]; CopyListViewItemToDGV(lv, lv.Items[k], currow); } } } int num7 = 0; int num8 = lv.Groups.Count - 1; for (int l = num7; l <= num8; l++) { if (lv.Groups[l].Items.Count > 0) { dataGridView.RowCount++; DataGridViewRow currow2 = dataGridView.Rows[dataGridView.RowCount - 1]; CopyListViewGroutItemToDGV(lv, lv.Groups[l].Header, lv.Groups[l].HeaderAlignment, currow2); int num9 = 0; int num10 = lv.Groups[l].Items.Count - 1; for (int m = num9; m <= num10; m++) { dataGridView.RowCount++; currow2 = dataGridView.Rows[dataGridView.RowCount - 1]; CopyListViewItemToDGV(lv, lv.Groups[l].Items[m], currow2); } } } return dataGridView; } } private static void CopyListViewGroutItemToDGV(ListView lv, string mygroupname, HorizontalAlignment alg, DataGridViewRow currow) { try { currow.DefaultCellStyle.Font = new Font(lv.Font, FontStyle.Bold); currow.DefaultCellStyle.ForeColor = Color.Black; } catch (Exception projectError) { ProjectData.SetProjectError(projectError); ProjectData.ClearProjectError(); } switch (alg) { case HorizontalAlignment.Right: currow.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; break; case HorizontalAlignment.Center: currow.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; break; default: currow.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft; break; } int num = 0; checked { int num2 = lv.Columns.Count - 1; for (int i = num; i <= num2; i++) { currow.Cells[i].Value = mygroupname; currow.Cells[i].Tag = "水平合并"; } } } private static void CopyListViewItemToDGV(ListView lv, ListViewItem myitem, DataGridViewRow myrow) { string text = myitem.Text; if (lv.CheckBoxes) { text = ((!myitem.Checked) ? ("□ " + text) : ("■ " + text)); } myrow.Cells[0].Value = text; try { myrow.Cells[0].Style.Font = (Font)myitem.Font.Clone(); } catch (Exception projectError) { ProjectData.SetProjectError(projectError); ProjectData.ClearProjectError(); } myrow.Cells[0].Style.ForeColor = myitem.ForeColor; myrow.Cells[0].Style.BackColor = myitem.BackColor; try { myrow.DefaultCellStyle.Font = (Font)myitem.Font.Clone(); } catch (Exception projectError2) { ProjectData.SetProjectError(projectError2); ProjectData.ClearProjectError(); } myrow.DefaultCellStyle.BackColor = myitem.BackColor; myrow.DefaultCellStyle.ForeColor = myitem.ForeColor; int num = 1; checked { int num2 = lv.Columns.Count - 1; for (int i = num; i <= num2; i++) { if (i >= myitem.SubItems.Count) { continue; } myrow.Cells[i].Value = myitem.SubItems[i].Text; if (!myitem.UseItemStyleForSubItems) { try { myrow.Cells[i].Style.Font = (Font)myitem.SubItems[i].Font.Clone(); } catch (Exception projectError3) { ProjectData.SetProjectError(projectError3); ProjectData.ClearProjectError(); } myrow.Cells[i].Style.ForeColor = myitem.SubItems[i].ForeColor; myrow.Cells[i].Style.BackColor = myitem.SubItems[i].BackColor; } } } } public static string SaveHashTableAsString(Hashtable hh) { string text = "\u0003"; string text2 = "\a"; if (hh == null) { return ""; } string[,] array = mbsjmodule.ParaseVar(hh); string text3 = ""; if (array == null) { return ""; } int num = 0; checked { int num2 = array.GetLength(0) - 1; for (int i = num; i <= num2; i++) { text3 = ((i != 0) ? (text3 + text + array[i, 0] + text2 + array[i, 1]) : (array[i, 0] + text2 + array[i, 1])); } return text3; } } public static Hashtable RestoreHashTableFromString(string ss) { if (Operators.CompareString(ss, "", TextCompare: false) == 0) { return null; } string delimiter = "\u0003"; string delimiter2 = "\a"; string[] array = Strings.Split(ss, delimiter); Hashtable hashtable = new Hashtable(); int num = 0; checked { int num2 = array.Length - 1; for (int i = num; i <= num2; i++) { string[] array2 = Strings.Split(array[i], delimiter2); hashtable.Add(array2[0], array2[1]); } return hashtable; } } public static Font GetDGVHeaderFont(DataGridViewColumn mycolumn) { DataGridView dataGridView = mycolumn.DataGridView; if (mycolumn.HeaderCell.Style.Font != null) { return mycolumn.HeaderCell.Style.Font; } if (dataGridView.ColumnHeadersDefaultCellStyle.Font == null) { return dataGridView.DefaultCellStyle.Font; } return dataGridView.ColumnHeadersDefaultCellStyle.Font; } public static Color GetDGVHeaderForeColor(DataGridViewColumn mycolumn) { DataGridView dataGridView = mycolumn.DataGridView; if (mycolumn.HeaderCell.Style.ForeColor.ToArgb() == 0) { if (dataGridView.ColumnHeadersDefaultCellStyle.ForeColor.ToArgb() == 0) { return dataGridView.DefaultCellStyle.ForeColor; } return dataGridView.ColumnHeadersDefaultCellStyle.ForeColor; } return mycolumn.HeaderCell.Style.ForeColor; } public static bool GetDGVHeaderMulline(DataGridViewColumn mycolumn) { DataGridView dataGridView = mycolumn.DataGridView; if (mycolumn.HeaderCell.Style.WrapMode == DataGridViewTriState.NotSet) { if (dataGridView.ColumnHeadersDefaultCellStyle.WrapMode == DataGridViewTriState.NotSet) { return GetMulline(dataGridView.DefaultCellStyle.WrapMode); } return GetMulline(dataGridView.ColumnHeadersDefaultCellStyle.WrapMode); } return GetMulline(mycolumn.HeaderCell.Style.WrapMode); } public static Color GetDGVHeaderBackColor(DataGridViewColumn mycolumn) { DataGridView dataGridView = mycolumn.DataGridView; if (mycolumn.HeaderCell.Style.BackColor.ToArgb() == 0) { if (dataGridView.ColumnHeadersDefaultCellStyle.BackColor.ToArgb() == 0) { return dataGridView.DefaultCellStyle.BackColor; } return dataGridView.ColumnHeadersDefaultCellStyle.BackColor; } return mycolumn.HeaderCell.Style.BackColor; } public static Font GetDGVCellFont(DataGridViewCell mycell) { DataGridView dataGridView = mycell.DataGridView; int rowIndex = mycell.RowIndex; DataGridViewRow dataGridViewRow = dataGridView.Rows[mycell.RowIndex]; DataGridViewColumn dataGridViewColumn = dataGridView.Columns[mycell.ColumnIndex]; Font result; try { result = ((dataGridViewRow.Cells[dataGridViewColumn.Index].Style.Font != null) ? dataGridViewRow.Cells[dataGridViewColumn.Index].Style.Font : ((dataGridViewRow.DefaultCellStyle.Font != null) ? dataGridViewRow.DefaultCellStyle.Font : ((checked(rowIndex + 1) % 2 == 0) ? ((dataGridView.AlternatingRowsDefaultCellStyle.Font != null) ? dataGridView.AlternatingRowsDefaultCellStyle.Font : ((dataGridView.RowsDefaultCellStyle.Font != null) ? dataGridView.RowsDefaultCellStyle.Font : ((dataGridViewColumn.DefaultCellStyle.Font != null) ? dataGridViewColumn.DefaultCellStyle.Font : dataGridView.DefaultCellStyle.Font))) : ((dataGridView.RowsDefaultCellStyle.Font != null) ? dataGridView.RowsDefaultCellStyle.Font : ((dataGridViewColumn.DefaultCellStyle.Font != null) ? dataGridViewColumn.DefaultCellStyle.Font : dataGridView.DefaultCellStyle.Font))))); } catch (Exception projectError) { ProjectData.SetProjectError(projectError); result = dataGridView.DefaultCellStyle.Font; ProjectData.ClearProjectError(); } dataGridView = null; return result; } public static Color GetDGVCellForeColor(DataGridViewCell mycell) { DataGridView dataGridView = mycell.DataGridView; int rowIndex = mycell.RowIndex; DataGridViewRow dataGridViewRow = dataGridView.Rows[mycell.RowIndex]; DataGridViewColumn dataGridViewColumn = dataGridView.Columns[mycell.ColumnIndex]; if (dataGridViewRow.Cells[dataGridViewColumn.Index].Style.ForeColor.ToArgb() == 0) { if (dataGridViewRow.DefaultCellStyle.ForeColor.ToArgb() == 0) { if (checked(rowIndex + 1) % 2 == 0) { if (dataGridView.AlternatingRowsDefaultCellStyle.ForeColor.ToArgb() == 0) { if (dataGridView.RowsDefaultCellStyle.ForeColor.ToArgb() == 0) { if (dataGridViewColumn.DefaultCellStyle.ForeColor.ToArgb() == 0) { return dataGridView.DefaultCellStyle.ForeColor; } return dataGridViewColumn.DefaultCellStyle.ForeColor; } return dataGridView.RowsDefaultCellStyle.ForeColor; } return dataGridView.AlternatingRowsDefaultCellStyle.ForeColor; } if (dataGridView.RowsDefaultCellStyle.ForeColor.ToArgb() == 0) { if (dataGridViewColumn.DefaultCellStyle.ForeColor.ToArgb() == 0) { return dataGridView.DefaultCellStyle.ForeColor; } return dataGridViewColumn.DefaultCellStyle.ForeColor; } return dataGridView.RowsDefaultCellStyle.ForeColor; } return dataGridViewRow.DefaultCellStyle.ForeColor; } return dataGridViewRow.Cells[dataGridViewColumn.Index].Style.ForeColor; } public static Color GetDGVCellBackColor(DataGridViewCell mycell) { DataGridView dataGridView = mycell.DataGridView; int rowIndex = mycell.RowIndex; DataGridViewRow dataGridViewRow = dataGridView.Rows[mycell.RowIndex]; DataGridViewColumn dataGridViewColumn = dataGridView.Columns[mycell.ColumnIndex]; if (dataGridViewRow.Cells[dataGridViewColumn.Index].Style.BackColor.ToArgb() == 0) { if (dataGridViewRow.DefaultCellStyle.BackColor.ToArgb() == 0) { if (checked(rowIndex + 1) % 2 == 0) { if (dataGridView.AlternatingRowsDefaultCellStyle.BackColor.ToArgb() == 0) { if (dataGridView.RowsDefaultCellStyle.BackColor.ToArgb() == 0) { if (dataGridViewColumn.DefaultCellStyle.BackColor.ToArgb() == 0) { return dataGridView.DefaultCellStyle.BackColor; } return dataGridViewColumn.DefaultCellStyle.BackColor; } return dataGridView.RowsDefaultCellStyle.BackColor; } return dataGridView.AlternatingRowsDefaultCellStyle.BackColor; } if (dataGridView.RowsDefaultCellStyle.BackColor.ToArgb() == 0) { if (dataGridViewColumn.DefaultCellStyle.BackColor.ToArgb() == 0) { return dataGridView.DefaultCellStyle.BackColor; } return dataGridViewColumn.DefaultCellStyle.BackColor; } return dataGridView.RowsDefaultCellStyle.BackColor; } return dataGridViewRow.DefaultCellStyle.BackColor; } return dataGridViewRow.Cells[dataGridViewColumn.Index].Style.BackColor; } public static bool GetDGVCellMulline(DataGridViewCell mycell) { DataGridView dataGridView = mycell.DataGridView; int rowIndex = mycell.RowIndex; DataGridViewRow dataGridViewRow = dataGridView.Rows[mycell.RowIndex]; DataGridViewColumn dataGridViewColumn = dataGridView.Columns[mycell.ColumnIndex]; if (dataGridViewRow.Cells[dataGridViewColumn.Index].Style.WrapMode == DataGridViewTriState.NotSet) { if (dataGridViewRow.DefaultCellStyle.WrapMode == DataGridViewTriState.NotSet) { if (checked(rowIndex + 1) % 2 == 0) { if (dataGridView.AlternatingRowsDefaultCellStyle.WrapMode == DataGridViewTriState.NotSet) { if (dataGridView.RowsDefaultCellStyle.WrapMode == DataGridViewTriState.NotSet) { if (dataGridViewColumn.DefaultCellStyle.WrapMode == DataGridViewTriState.NotSet) { return GetMulline(dataGridView.DefaultCellStyle.WrapMode); } return GetMulline(dataGridViewColumn.DefaultCellStyle.WrapMode); } return GetMulline(dataGridView.RowsDefaultCellStyle.WrapMode); } return GetMulline(dataGridView.AlternatingRowsDefaultCellStyle.WrapMode); } if (dataGridView.RowsDefaultCellStyle.WrapMode == DataGridViewTriState.NotSet) { if (dataGridViewColumn.DefaultCellStyle.WrapMode == DataGridViewTriState.NotSet) { return GetMulline(dataGridView.DefaultCellStyle.WrapMode); } return GetMulline(dataGridViewColumn.DefaultCellStyle.WrapMode); } return GetMulline(dataGridView.RowsDefaultCellStyle.WrapMode); } return GetMulline(dataGridViewRow.DefaultCellStyle.WrapMode); } return GetMulline(dataGridViewRow.Cells[dataGridViewColumn.Index].Style.WrapMode); } public static Margins GetDGVCellPadding(DataGridViewCell mycell) { Margins margins = new Margins(); DataGridView dataGridView = mycell.DataGridView; int rowIndex = mycell.RowIndex; DataGridViewRow dataGridViewRow = dataGridView.Rows[mycell.RowIndex]; DataGridViewColumn dataGridViewColumn = dataGridView.Columns[mycell.ColumnIndex]; if (dataGridViewRow.Cells[dataGridViewColumn.Index].Style.Padding.All == 0) { if (dataGridViewRow.DefaultCellStyle.Padding.All == 0) { if (checked(rowIndex + 1) % 2 == 0) { if (dataGridView.AlternatingRowsDefaultCellStyle.Padding.All == 0) { if (dataGridView.RowsDefaultCellStyle.Padding.All == 0) { if (dataGridViewColumn.DefaultCellStyle.Padding.All == 0) { margins.Left = dataGridView.DefaultCellStyle.Padding.Left; margins.Top = dataGridView.DefaultCellStyle.Padding.Top; margins.Right = dataGridView.DefaultCellStyle.Padding.Right; margins.Bottom = dataGridView.DefaultCellStyle.Padding.Bottom; } else { margins.Left = dataGridViewColumn.DefaultCellStyle.Padding.Left; margins.Top = dataGridViewColumn.DefaultCellStyle.Padding.Top; margins.Right = dataGridViewColumn.DefaultCellStyle.Padding.Right; margins.Bottom = dataGridViewColumn.DefaultCellStyle.Padding.Bottom; } } else { margins.Left = dataGridView.RowsDefaultCellStyle.Padding.Left; margins.Top = dataGridView.RowsDefaultCellStyle.Padding.Top; margins.Right = dataGridView.RowsDefaultCellStyle.Padding.Right; margins.Bottom = dataGridView.RowsDefaultCellStyle.Padding.Bottom; } } else { margins.Left = dataGridView.AlternatingRowsDefaultCellStyle.Padding.Left; margins.Top = dataGridView.AlternatingRowsDefaultCellStyle.Padding.Top; margins.Right = dataGridView.AlternatingRowsDefaultCellStyle.Padding.Right; margins.Bottom = dataGridView.AlternatingRowsDefaultCellStyle.Padding.Bottom; } } else if (dataGridView.RowsDefaultCellStyle.Padding.All == 0) { if (dataGridViewColumn.DefaultCellStyle.Padding.All == 0) { margins.Left = dataGridView.DefaultCellStyle.Padding.Left; margins.Top = dataGridView.DefaultCellStyle.Padding.Top; margins.Right = dataGridView.DefaultCellStyle.Padding.Right; margins.Bottom = dataGridView.DefaultCellStyle.Padding.Bottom; } else { margins.Left = dataGridViewColumn.DefaultCellStyle.Padding.Left; margins.Top = dataGridViewColumn.DefaultCellStyle.Padding.Top; margins.Right = dataGridViewColumn.DefaultCellStyle.Padding.Right; margins.Bottom = dataGridViewColumn.DefaultCellStyle.Padding.Bottom; } } else { margins.Left = dataGridView.RowsDefaultCellStyle.Padding.Left; margins.Top = dataGridView.RowsDefaultCellStyle.Padding.Top; margins.Right = dataGridView.RowsDefaultCellStyle.Padding.Right; margins.Bottom = dataGridView.RowsDefaultCellStyle.Padding.Bottom; } } else { margins.Left = dataGridViewRow.DefaultCellStyle.Padding.Left; margins.Top = dataGridViewRow.DefaultCellStyle.Padding.Top; margins.Right = dataGridViewRow.DefaultCellStyle.Padding.Right; margins.Bottom = dataGridViewRow.DefaultCellStyle.Padding.Bottom; } } else { margins.Left = dataGridViewRow.Cells[dataGridViewColumn.Index].Style.Padding.Left; margins.Top = dataGridViewRow.Cells[dataGridViewColumn.Index].Style.Padding.Top; margins.Right = dataGridViewRow.Cells[dataGridViewColumn.Index].Style.Padding.Right; margins.Bottom = dataGridViewRow.Cells[dataGridViewColumn.Index].Style.Padding.Bottom; } return margins; } public static DataGridViewCellStyle GetDGVCellStyle(DataGridViewCell mycell) { DataGridView dataGridView = mycell.DataGridView; int rowIndex = mycell.RowIndex; DataGridViewRow dataGridViewRow = dataGridView.Rows[mycell.RowIndex]; DataGridViewColumn dataGridViewColumn = dataGridView.Columns[mycell.ColumnIndex]; if (dataGridViewRow.Cells[dataGridViewColumn.Index].Style.Alignment == DataGridViewContentAlignment.NotSet) { if (dataGridViewRow.DefaultCellStyle.Alignment == DataGridViewContentAlignment.NotSet) { if (checked(rowIndex + 1) % 2 == 0) { if (dataGridView.AlternatingRowsDefaultCellStyle.Alignment == DataGridViewContentAlignment.NotSet) { if (dataGridView.RowsDefaultCellStyle.Alignment == DataGridViewContentAlignment.NotSet) { if (dataGridViewColumn.DefaultCellStyle.Alignment == DataGridViewContentAlignment.NotSet) { return dataGridView.DefaultCellStyle; } return dataGridViewColumn.DefaultCellStyle; } return dataGridView.RowsDefaultCellStyle; } return dataGridView.AlternatingRowsDefaultCellStyle; } if (dataGridView.RowsDefaultCellStyle.Alignment == DataGridViewContentAlignment.NotSet) { if (dataGridViewColumn.DefaultCellStyle.Alignment == DataGridViewContentAlignment.NotSet) { return dataGridView.DefaultCellStyle; } return dataGridViewColumn.DefaultCellStyle; } return dataGridView.RowsDefaultCellStyle; } return dataGridViewRow.DefaultCellStyle; } return dataGridViewRow.Cells[dataGridViewColumn.Index].Style; } public static StringAlignment GetHAlignment(DataGridViewContentAlignment mytt) { switch (mytt) { default: return StringAlignment.Near; case DataGridViewContentAlignment.TopRight: case DataGridViewContentAlignment.MiddleRight: case DataGridViewContentAlignment.BottomRight: return StringAlignment.Far; case DataGridViewContentAlignment.NotSet: case DataGridViewContentAlignment.TopLeft: case DataGridViewContentAlignment.MiddleLeft: case DataGridViewContentAlignment.BottomLeft: return StringAlignment.Near; case DataGridViewContentAlignment.TopCenter: case DataGridViewContentAlignment.MiddleCenter: case DataGridViewContentAlignment.BottomCenter: return StringAlignment.Center; } } public static StringAlignment GetVAlignment(DataGridViewContentAlignment mytt, bool IsDGVCellValignmentCenter) { if (IsDGVCellValignmentCenter) { return StringAlignment.Center; } switch (mytt) { default: return StringAlignment.Center; case DataGridViewContentAlignment.NotSet: case DataGridViewContentAlignment.TopLeft: case DataGridViewContentAlignment.TopCenter: case DataGridViewContentAlignment.TopRight: return StringAlignment.Near; case DataGridViewContentAlignment.MiddleLeft: case DataGridViewContentAlignment.MiddleCenter: case DataGridViewContentAlignment.MiddleRight: return StringAlignment.Center; case DataGridViewContentAlignment.BottomLeft: case DataGridViewContentAlignment.BottomCenter: case DataGridViewContentAlignment.BottomRight: return StringAlignment.Far; } } public static bool GetMulline(DataGridViewTriState mytt) { switch (mytt) { case DataGridViewTriState.NotSet: case DataGridViewTriState.False: return false; default: return true; } } public static Font GetDGVColumnHeaderFont(DataGridView dgv, string colname) { if (dgv == null) { return null; } DataGridViewColumn dataGridViewColumn; try { dataGridViewColumn = dgv.Columns[colname]; } catch (Exception projectError) { ProjectData.SetProjectError(projectError); Font result = null; ProjectData.ClearProjectError(); return result; } if (dataGridViewColumn == null) { return null; } return (dataGridViewColumn.HeaderCell.Style.Font != null) ? dataGridViewColumn.HeaderCell.Style.Font : ((dgv.ColumnHeadersDefaultCellStyle.Font != null) ? dgv.ColumnHeadersDefaultCellStyle.Font : dgv.DefaultCellStyle.Font); } public static Color GetDGVColumnHeaderForeColor(DataGridView dgv, string colname) { if (dgv == null) { return Color.Black; } DataGridViewColumn dataGridViewColumn; try { dataGridViewColumn = dgv.Columns[colname]; } catch (Exception projectError) { ProjectData.SetProjectError(projectError); Color black = Color.Black; ProjectData.ClearProjectError(); return black; } if (dataGridViewColumn == null) { return Color.Black; } return (dataGridViewColumn.HeaderCell.Style.ForeColor.ToArgb() != 0) ? dataGridViewColumn.HeaderCell.Style.ForeColor : ((dgv.ColumnHeadersDefaultCellStyle.ForeColor.ToArgb() != 0) ? dgv.ColumnHeadersDefaultCellStyle.ForeColor : dgv.DefaultCellStyle.ForeColor); } public static Color GetDGVColumnHeaderBackColor(DataGridView dgv, string colname) { if (dgv == null) { return Color.White; } DataGridViewColumn dataGridViewColumn; try { dataGridViewColumn = dgv.Columns[colname]; } catch (Exception projectError) { ProjectData.SetProjectError(projectError); Color white = Color.White; ProjectData.ClearProjectError(); return white; } if (dataGridViewColumn == null) { return Color.White; } return (dataGridViewColumn.HeaderCell.Style.BackColor.ToArgb() != 0) ? dataGridViewColumn.HeaderCell.Style.BackColor : ((dgv.ColumnHeadersDefaultCellStyle.BackColor.ToArgb() != 0) ? dgv.ColumnHeadersDefaultCellStyle.BackColor : dgv.DefaultCellStyle.BackColor); } public static Font GetDGVColumnFont(DataGridView dgv, string colname) { if (dgv == null) { return null; } DataGridViewColumn dataGridViewColumn; try { dataGridViewColumn = dgv.Columns[colname]; } catch (Exception projectError) { ProjectData.SetProjectError(projectError); Font result = null; ProjectData.ClearProjectError(); return result; } if (dataGridViewColumn == null) { return null; } return (dgv.RowsDefaultCellStyle.Font != null) ? dgv.RowsDefaultCellStyle.Font : ((dataGridViewColumn.DefaultCellStyle.Font != null) ? dataGridViewColumn.DefaultCellStyle.Font : dgv.DefaultCellStyle.Font); } public static Color GetDGVColumnForeColor(DataGridView dgv, string colname) { if (dgv == null) { return Color.Black; } DataGridViewColumn dataGridViewColumn; try { dataGridViewColumn = dgv.Columns[colname]; } catch (Exception projectError) { ProjectData.SetProjectError(projectError); Color black = Color.Black; ProjectData.ClearProjectError(); return black; } if (dataGridViewColumn == null) { return Color.Black; } return (dgv.RowsDefaultCellStyle.ForeColor.ToArgb() != 0) ? dgv.RowsDefaultCellStyle.ForeColor : ((dataGridViewColumn.DefaultCellStyle.ForeColor.ToArgb() != 0) ? dataGridViewColumn.DefaultCellStyle.ForeColor : dgv.DefaultCellStyle.ForeColor); } public static Color GetDGVColumnBackColor(DataGridView dgv, string colname) { if (dgv == null) { return Color.Black; } DataGridViewColumn dataGridViewColumn; try { dataGridViewColumn = dgv.Columns[colname]; } catch (Exception projectError) { ProjectData.SetProjectError(projectError); Color black = Color.Black; ProjectData.ClearProjectError(); return black; } if (dataGridViewColumn == null) { return Color.Black; } return (dgv.RowsDefaultCellStyle.BackColor.ToArgb() != 0) ? dgv.RowsDefaultCellStyle.BackColor : ((dataGridViewColumn.DefaultCellStyle.BackColor.ToArgb() != 0) ? dataGridViewColumn.DefaultCellStyle.BackColor : dgv.DefaultCellStyle.BackColor); } public static bool GetDGVColumnMulLine(DataGridView dgv, string colname) { if (dgv == null) { return false; } DataGridViewColumn dataGridViewColumn; try { dataGridViewColumn = dgv.Columns[colname]; } catch (Exception projectError) { ProjectData.SetProjectError(projectError); bool result = false; ProjectData.ClearProjectError(); return result; } if (dataGridViewColumn == null) { return false; } return (dgv.RowsDefaultCellStyle.WrapMode != 0) ? GetMulline(dgv.RowsDefaultCellStyle.WrapMode) : ((dataGridViewColumn.DefaultCellStyle.WrapMode != 0) ? GetMulline(dataGridViewColumn.DefaultCellStyle.WrapMode) : GetMulline(dgv.DefaultCellStyle.WrapMode)); } public static ContentAlignment GetDGVColumnAlignment(DataGridView dgv, string colname) { if (dgv == null) { return ContentAlignment.MiddleLeft; } DataGridViewColumn dataGridViewColumn; try { dataGridViewColumn = dgv.Columns[colname]; } catch (Exception projectError) { ProjectData.SetProjectError(projectError); ContentAlignment result1 = ContentAlignment.MiddleLeft; ProjectData.ClearProjectError(); return result1; } if (dataGridViewColumn == null) { return ContentAlignment.MiddleLeft; } DataGridViewCellStyle dataGridViewCellStyle = ((dgv.RowsDefaultCellStyle.Alignment != 0) ? dgv.RowsDefaultCellStyle : ((dataGridViewColumn.DefaultCellStyle.Alignment != 0) ? dataGridViewColumn.DefaultCellStyle : dgv.DefaultCellStyle)); ContentAlignment result; DataGridViewContentAlignment alignment = dataGridViewCellStyle.Alignment; if (alignment == DataGridViewContentAlignment.BottomCenter) { result = ContentAlignment.BottomCenter; } else if (alignment == DataGridViewContentAlignment.BottomLeft) { result = ContentAlignment.BottomLeft; } else if (alignment == DataGridViewContentAlignment.BottomRight) { result = ContentAlignment.BottomRight; } else if (alignment == DataGridViewContentAlignment.MiddleCenter) { result = ContentAlignment.MiddleCenter; } else if (alignment == DataGridViewContentAlignment.MiddleLeft) { result = ContentAlignment.MiddleLeft; } else if (alignment == DataGridViewContentAlignment.MiddleRight) { result = ContentAlignment.MiddleRight; } else if (alignment == DataGridViewContentAlignment.NotSet) { result = ContentAlignment.MiddleLeft; } else if (alignment == DataGridViewContentAlignment.TopCenter) { result = ContentAlignment.TopCenter; } else if (alignment == DataGridViewContentAlignment.TopLeft) { result = ContentAlignment.TopLeft; } else if (alignment == DataGridViewContentAlignment.TopRight) { result = ContentAlignment.TopRight; } else { result = ContentAlignment.MiddleLeft; } return result; } public static string EncryptionString(string ss) { byte[] bytes = Encoding.Unicode.GetBytes(ss); MemoryStream memoryStream = new MemoryStream(); CryptoStream cryptoStream = new CryptoStream(memoryStream, new TripleDESCryptoServiceProvider { Key = G_mykey, IV = G_myiv }.CreateEncryptor(), CryptoStreamMode.Write); cryptoStream.Write(bytes, 0, bytes.Length); cryptoStream.Close(); string result = Convert.ToBase64String(memoryStream.ToArray()); memoryStream.Dispose(); return result; } public static string DecryptionString(string ss) { TripleDESCryptoServiceProvider tripleDESCryptoServiceProvider = new TripleDESCryptoServiceProvider(); MemoryStream memoryStream = new MemoryStream(); tripleDESCryptoServiceProvider.Key = G_mykey; tripleDESCryptoServiceProvider.IV = G_myiv; CryptoStream cryptoStream = new CryptoStream(memoryStream, tripleDESCryptoServiceProvider.CreateDecryptor(), CryptoStreamMode.Write); byte[] array = Convert.FromBase64String(ss); cryptoStream.Write(array, 0, array.Length); cryptoStream.Close(); string @string = Encoding.Unicode.GetString(memoryStream.ToArray()); memoryStream.Dispose(); return @string; } public static Bitmap getDGVCheckBoxCellImage(DataGridViewCell dgvcell, Color mybkcolor) { Bitmap result; if (dgvcell == null) { result = null; } else { CheckBox checkBox = new CheckBox(); Control control = checkBox; Size size = new Size(14, 14); control.Size = size; checkBox.BackColor = mybkcolor; if (dgvcell.FormattedValue != null) { if (Operators.CompareString(Versioned.TypeName(RuntimeHelpers.GetObjectValue(dgvcell.FormattedValue)), "Boolean", TextCompare: false) == 0) { if (Conversions.ToBoolean(dgvcell.FormattedValue)) { checkBox.Checked = true; } else { checkBox.Checked = false; } } else { switch (Conversions.ToInteger(dgvcell.FormattedValue)) { case 0: checkBox.Checked = false; break; case 1: checkBox.Checked = true; break; default: checkBox.CheckState = CheckState.Indeterminate; break; } } } else { checkBox.Checked = false; } try { Bitmap bitmap = new Bitmap(14, 14); Graphics graphics = Graphics.FromImage(bitmap); Brush brush = new SolidBrush(mybkcolor); Graphics graphics2 = graphics; Brush brush2 = brush; Rectangle rect = new Rectangle(0, 0, bitmap.Width, bitmap.Height); graphics2.FillRectangle(brush2, rect); if (bitmap.Height < checkBox.Height) { checkBox.Height = bitmap.Height; } if (bitmap.Width < checkBox.Width) { checkBox.Width = bitmap.Width; } Control control2 = checkBox; Bitmap bitmap2 = bitmap; rect = checked(new Rectangle((int)Math.Round((double)(bitmap.Width - checkBox.Width) / 2.0), (int)Math.Round((double)(bitmap.Height - checkBox.Height) / 2.0), checkBox.Width, checkBox.Height)); control2.DrawToBitmap(bitmap2, rect); graphics.Dispose(); checkBox.Dispose(); result = bitmap; } catch (Exception projectError) { ProjectData.SetProjectError(projectError); result = null; ProjectData.ClearProjectError(); } } return result; } } }