#region Copy & Paste -
private bool ctrlCDown = false;
private bool ctrlVDown = false;
/// <summary>
///
/// </summary>
/// <![CDATA[
/// For Copy Function your GridView should set like below
/// gridView.OptionsView.AllowCellMerge = false;
/// gridView.OptionsSelection.MultiSelect = true;
/// gridView.OptionsSelection.MultiSelectMode = DevExpress.XtraGrid.Views.Grid.GridMultiSelectMode.CellSelect;
/// ]]>
/// <param name="gridViews"></param>
public void SetCopyAndPasteFunction(GridColumn[] usedColumns, params GridView[] gridViews)
{
try
{
foreach (GridView gridView in gridViews)
{
#region KeyDown Event Part
gridView.KeyDown += new KeyEventHandler(
delegate(object sender, KeyEventArgs e)
{
GridView currentGridView = sender as GridView;
if (currentGridView == null) return;
System.Diagnostics.Debug.WriteLine(e.KeyCode);
if (e.Control)
{
//gvList.CloseEditor();
System.Diagnostics.Debug.WriteLine("Ctrl+" + e.KeyCode);
if (e.KeyValue == ((int)'C') || e.KeyValue == ((int)'c')) //Copy
{
ctrlCDown = true;
}
else if (e.KeyValue == ((int)'V') || e.KeyValue == ((int)'v')) //Paste
{
// 修改问题124:数字不能 Ctrl+C/V -> 请修改成可以。 (Main信息 – Pattern基准Spec也要)
// islocked=false页面锁定状态不能粘贴进来
if (currentGridView.Editable == true && currentGridView.FocusedColumn != null && currentGridView.FocusedRowHandle >= 0 && currentGridView.FocusedRowHandle < currentGridView.DataRowCount)
{
if (ctrlCDown == true)
{
ctrlCDown = false;
RemoveClipBoardHeader();
}
string text = null;
IDataObject data = Clipboard.GetDataObject();
if (data.GetDataPresent(DataFormats.Text))
{