private static bool DoPaste(this DataGridView grid, Control parent, ValidateCellValues validate, Action <string[], int> addRow) { string textClip = ClipboardHelper.GetClipboardText(parent); if (string.IsNullOrEmpty(textClip) || !grid.EndEdit()) { return(false); } return(DoPasteText(parent, textClip, grid, validate, addRow)); }
public static bool DoPaste(this DataGridView grid, IWin32Window parent, ValidateCellValues validate) { string textClip = GetClipBoardText(parent); if (string.IsNullOrEmpty(textClip) || !grid.EndEdit()) return false; grid.SuspendLayout(); // Remove everything, and paste new contents grid.Rows.Clear(); bool result = DoPasteText(parent, textClip, grid, validate, (values, lineNum) => grid.Rows.Add(values.Cast<object>().ToArray())); grid.ResumeLayout(); return result; }
public static bool DoPaste(this DataGridView grid, Control parent, ValidateCellValues validate) { string textClip = ClipboardHelper.GetClipboardText(parent); if (string.IsNullOrEmpty(textClip) || !grid.EndEdit()) { return(false); } grid.SuspendLayout(); // Remove everything, and paste new contents grid.Rows.Clear(); bool result = DoPasteText(parent, textClip, grid, validate, (values, lineNum) => grid.Rows.Add(values.Cast <object>().ToArray())); grid.ResumeLayout(); return(result); }
private static bool DoPasteText(IWin32Window parent, string textClip, DataGridView grid, ValidateCellValues validate, Action <string[], int> addRow) { TextReader reader = new StringReader(textClip); int columnCount = grid.Columns.Cast <DataGridViewColumn>().Count(column => column.Visible); int lineNum = 0; String line; while ((line = reader.ReadLine()) != null) { lineNum++; String[] columns = line.Split(TextUtil.SEPARATOR_TSV); if (columns.Length == 0) { continue; } if (columns.Length > columnCount) { string message = string.Format(Resources.SettingsUIUtil_DoPasteText_Incorrect_number_of_columns__0__found_on_line__1__, columns.Length, lineNum); MessageDlg.Show(parent, message); return(false); } for (int i = 0; i < columns.Length; i++) { columns[i] = columns[i].Trim(); } if (!validate(columns, parent, lineNum)) { return(false); } addRow(columns, lineNum); } return(true); }
public static bool DoPaste(this DataGridView grid, Control parent, ValidateCellValues validate, Action <string[]> addRow) { return(grid.DoPaste(parent, validate, (s, i) => addRow(s))); }
public static bool DoPaste(this DataGridView grid, IWin32Window parent, ValidateCellValues validate, Action<string[]> addRow) { return grid.DoPaste(parent, validate, (s, i) => addRow(s)); }
private static bool DoPasteText(IWin32Window parent, string textClip, DataGridView grid, ValidateCellValues validate, Action<string[], int> addRow) { TextReader reader = new StringReader(textClip); int columnCount = grid.Columns.Cast<DataGridViewColumn>().Count(column => column.Visible); int lineNum = 0; String line; while ((line = reader.ReadLine()) != null) { lineNum++; String[] columns = line.Split(TextUtil.SEPARATOR_TSV); if (columns.Length == 0) continue; if (columns.Length > columnCount) { string message = string.Format(Resources.SettingsUIUtil_DoPasteText_Incorrect_number_of_columns__0__found_on_line__1__, columns.Length, lineNum); MessageDlg.Show(parent, message); return false; } for (int i = 0; i < columns.Length; i++) columns[i] = columns[i].Trim(); if (!validate(columns, parent, lineNum)) return false; addRow(columns, lineNum); } return true; }
private static bool DoPaste(this DataGridView grid, IWin32Window parent, ValidateCellValues validate, Action<string[], int> addRow) { string textClip = GetClipBoardText(parent); if (string.IsNullOrEmpty(textClip) || !grid.EndEdit()) return false; return DoPasteText(parent, textClip, grid, validate, addRow); }