private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
{
try
{
if (e.Modifiers == Keys.Control)
{
switch (e.KeyCode)
{
case Keys.C:
CopyToClipboard();
break;
case Keys.V:
PasteClipboard();
break;
}
}
}
catch (Exception ex)
{
MessageBox.Show("Copy/paste operation failed. " + ex.Message, "Copy/Paste", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
private void CopyToClipboard()
{
//Copy to clipboard
DataObject dataObj = dataGridView1.GetClipboardContent();
if (dataObj != null)
Clipboard.SetDataObject(dataObj);
}
private void PasteClipboard()
{
try
{
string s = Clipboard.GetText();
string[] lines = s.Split('\n');
int iRow = dataGridView1.CurrentCell.RowIndex;
int iCol = dataGridView1.CurrentCell.ColumnIndex;
DataGridViewCell oCell;
if (iRow + lines.Length > dataGridView1.Rows.Count - 1)
{
bool bFlag = false;
foreach (string sEmpty in lines)
{
if (sEmpty == "")
{
bFlag = true;
}
}
int iNewRows = iRow + lines.Length - dataGridView1.Rows.Count;
if (iNewRows > 0)
{
if (bFlag)
dataGridView1.Rows.Add(iNewRows);
else
dataGridView1.Rows.Add(iNewRows + 1);
}
else
dataGridView1.Rows.Add(iNewRows + 1);
}
foreach (string line in lines)
{
if (iRow < dataGridView1.RowCount && line.Length > 0)
{
string[] sCells = line.Split('\t');
for (int i = 0; i < sCells.GetLength(0); ++i)
{
if (iCol + i < this.dataGridView1.ColumnCount)
{
oCell = dataGridView1[iCol + i, iRow];
oCell.Value = Convert.ChangeType(sCells[i].Replace("\r", ""), oCell.ValueType);
}
else
{
break;
}
}
iRow++;
}
else
{
break;
}
}
Clipboard.Clear();
}
catch (FormatException)
{
MessageBox.Show("The data you pasted is in the wrong format for the cell");
return;
}
}
{
try
{
if (e.Modifiers == Keys.Control)
{
switch (e.KeyCode)
{
case Keys.C:
CopyToClipboard();
break;
case Keys.V:
PasteClipboard();
break;
}
}
}
catch (Exception ex)
{
MessageBox.Show("Copy/paste operation failed. " + ex.Message, "Copy/Paste", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
private void CopyToClipboard()
{
//Copy to clipboard
DataObject dataObj = dataGridView1.GetClipboardContent();
if (dataObj != null)
Clipboard.SetDataObject(dataObj);
}
private void PasteClipboard()
{
try
{
string s = Clipboard.GetText();
string[] lines = s.Split('\n');
int iRow = dataGridView1.CurrentCell.RowIndex;
int iCol = dataGridView1.CurrentCell.ColumnIndex;
DataGridViewCell oCell;
if (iRow + lines.Length > dataGridView1.Rows.Count - 1)
{
bool bFlag = false;
foreach (string sEmpty in lines)
{
if (sEmpty == "")
{
bFlag = true;
}
}
int iNewRows = iRow + lines.Length - dataGridView1.Rows.Count;
if (iNewRows > 0)
{
if (bFlag)
dataGridView1.Rows.Add(iNewRows);
else
dataGridView1.Rows.Add(iNewRows + 1);
}
else
dataGridView1.Rows.Add(iNewRows + 1);
}
foreach (string line in lines)
{
if (iRow < dataGridView1.RowCount && line.Length > 0)
{
string[] sCells = line.Split('\t');
for (int i = 0; i < sCells.GetLength(0); ++i)
{
if (iCol + i < this.dataGridView1.ColumnCount)
{
oCell = dataGridView1[iCol + i, iRow];
oCell.Value = Convert.ChangeType(sCells[i].Replace("\r", ""), oCell.ValueType);
}
else
{
break;
}
}
iRow++;
}
else
{
break;
}
}
Clipboard.Clear();
}
catch (FormatException)
{
MessageBox.Show("The data you pasted is in the wrong format for the cell");
return;
}
}
Very Good Code
ReplyDeleteThx! just CopyPaste Code and is workin :D
ReplyDelete