摘要:[C#] - DataGridView 貼上多格儲存格
繼上一篇[C#] - DataGridView 使用ctrl+V貼上儲存格
這篇要接著介紹如何"貼上多格儲存格"
為了達成下圖的功能撰寫了貼上多格儲存格的code
if ((e.Modifiers == Keys.Control) && (e.KeyCode == Keys.V) && (dgv_addtable.CurrentCell != null))//Ctrl+V貼上指令
{
Match m = Regex.Match(Clipboard.GetText(),"(.+)\r?\n?");
if (m.Success)
{
int i = 0, j = 0;
while ((m.Groups[1].Value!= "") && (dgv_addtable.RowCount-1>dgv_addtable.CurrentCell.RowIndex+i))
{
if (m.Groups[1].Value.Contains("\t"))
{
foreach (string column in m.Groups[1].Value.Replace("\r\n", "").Split('\t'))
{
if ((dgv_addtable.ColumnCount - 1) > (dgv_addtable.CurrentCell.ColumnIndex + j))
{
dgv_addtable[dgv_addtable.CurrentCell.ColumnIndex + j, dgv_addtable.CurrentCell.RowIndex + i].Value = column;
j++;
}
}
j = 0;
}
else
dgv_addtable[dgv_addtable.CurrentCell.ColumnIndex + j, dgv_addtable.CurrentCell.RowIndex + i].Value = m.Groups[1].Value;
i++;
m = m.NextMatch();
}
}
else
dgv_addtable[dgv_addtable.CurrentCell.ColumnIndex, dgv_addtable.CurrentCell.RowIndex].Value = Clipboard.GetText();
}