鉴于网上众多的有关DataGridView粘贴功能的Demo都不好理解,找了一圈也没有一个好用的,我决定自己实现一个简单的,拿来就能用的Demo。
1.PreviewKeyDown会监听按键的按下,只需要判断Ctrl和V同事按下就可以
//在DataGridView的PreviewKeyDown事件中
private void dataGridView1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
if (e.Control && e.KeyCode == Keys.V) // 判断是否按下ctrl+v
{
Paste(dataGridView1, "", 0, false);//粘贴代码
}
}
Paste()方法的代码
public int Paste(DataGridView dgv, string pasteText, int kind, bool b_cut)
{
try
{
if (kind == 0)
{
pasteText = Clipboard.GetText();
}
if (string.IsNullOrEmpty(pasteText))
return -1;
int rowNum = 0;
int columnNum = 0;
//获得当前剪贴板内容的行、列数
for (int i = 0; i < pasteText.Length; i++)
{
if (pasteText.Substring(i, 1) == "\t")
{
columnNum++;
}
if (pasteText.Substring(i, 1) == "\n")
{
rowNum++;
}
}
Objec