09 Ağu 2024
by Şerif Çiçek

Devexpress Gridviewde Tek Bir Hücreyi Kopyalama

Devexpress gridview de ctrl+c tuşuna basınca tek bir hücreyi kopyalama

devexpress gridview de tek bir hücreyi klavyeden "ctrl+c" tuş kombinasyonuna basınca kopyalamak için gridcontrol de bulunan ProcessGridKey eventi nin içerisine bir kod yazmak gerekmektedir.




this.gridControl1.ProcessGridKey += new System.Windows.Forms.KeyEventHandler(this.gridControl1_ProcessGridKey);
private void gridControl1_ProcessGridKey(object sender, KeyEventArgs e)
{
	if (e.Control && e.KeyCode == Keys.C)
	{
		var gridView = (sender as GridControl).FocusedView as GridView;
		if (dgBasicViewAcik.SelectedRowsCount == 1)
		{
			Clipboard.SetText(gridView.FocusedValue.ToString());
		}
		else
		{
			CopyToClipboard((sender as GridControl).FocusedView, true);
		}
		e.Handled = true;
	}
}


Burada önce sender tuş kombinasyonunu kontrol ediyoruz.

Ardından eğer seçili satır varsa windows.form un cilpboard özelliğini kullanıyoruz. Eğer yoksa CopyToClipboard metodunu tetikliyoruz. Bu metot aşağıdadır.






private void CopyToClipboard(BaseView view, bool copyColumnCaptions)
{
	try
	{
		view.CopyToClipboard();
		if (!copyColumnCaptions)
			return;
		IDataObject data = Clipboard.GetDataObject();
		object o = data.GetData("System.String", false);
		if (o != null)
		{
			string dataObject = o.ToString();
			string columnCaptions = "";
			foreach (GridColumn col in dgBasicView.VisibleColumns)
			{
				columnCaptions += col.Caption + "\t";
			}
			columnCaptions += "\r\n";
			Clipboard.SetDataObject(dataObject.Insert(0, columnCaptions));
		}
	}
	catch (Exception exp)
	{ }
}


Add Comment
Yorum yazmak için lütfen üye olunuz