'Declaration Public Class ClipboardPastingEventArgs Inherits ClipboardOperationEventArgs
public class ClipboardPastingEventArgs : ClipboardOperationEventArgs
Imports Infragistics.Windows.DataPresenter Imports System.Globalization Private Sub grid_ClipboardPasting(ByVal sender As System.Object, ByVal e As Infragistics.Windows.DataPresenter.Events.ClipboardPastingEventArgs) Dim dp As DataPresenterBase = DirectCast(sender, DataPresenterBase) Dim notPercentField As Field = dp.DefaultFieldLayout.Fields("NotPercent") Dim fldIndex As Integer = e.GetTargetFieldIndex(notPercentField) If fldIndex >= 0 Then Dim percentSymbol As String = CultureInfo.CurrentCulture.NumberFormat.PercentSymbol For i As Integer = 0 To e.RecordCount - 1 Dim cvh As CellValueHolder = e.Values(i, fldIndex) If Not cvh Is Nothing AndAlso cvh.IsDisplayText AndAlso Not String.IsNullOrEmpty(TryCast(cvh.Value, String)) Then Dim originalValue As String = cvh.Value.ToString() Dim newValue As String = originalValue.Replace(percentSymbol, String.Empty) ' if the source value had a percent... If newValue <> originalValue Then Dim value As Double ' parse the value without the % and divide by 100 If Double.TryParse(newValue, NumberStyles.Any, Nothing, value) Then cvh.Value = value / 100 cvh.IsDisplayText = False End If End If End If Next i End If End Sub Private Sub grid_ClipboardCopying(ByVal sender As System.Object, ByVal e As Infragistics.Windows.DataPresenter.Events.ClipboardCopyingEventArgs) Dim dp As DataPresenterBase = DirectCast(sender, DataPresenterBase) Dim notPercentField As Field = dp.DefaultFieldLayout.Fields("NotPercent") Dim fldIndex As Integer = e.GetSourceFieldIndex(notPercentField) ' the not percent field displays in exponential but to output the ' value in another format, we can change the value of the associated ' cell value holders If fldIndex >= 0 Then For i As Integer = 0 To e.RecordCount - 1 Dim cvh As CellValueHolder = e.Values(i, fldIndex) If Not cvh Is Nothing AndAlso Not cvh.IsDisplayText AndAlso TypeOf cvh.Value Is Double Then Dim dblValue As Double = CType(cvh.Value, Double) cvh.Value = dblValue.ToString("R") cvh.IsDisplayText = True End If Next End If End Sub Private Sub grid_InitializeRecord(ByVal sender As System.Object, ByVal e As Infragistics.Windows.DataPresenter.Events.InitializeRecordEventArgs) If Not e.ReInitialize Then Dim dr As DataRecord = TryCast(e.Record, DataRecord) If Not dr Is Nothing Then dr.Cells("NotPercent").Value = 0.25 dr.Cells("Percent").Value = 0.25 End If End If End Sub
using Infragistics.Windows.DataPresenter; using System.Globalization; private void grid_ClipboardPasting(object sender, Infragistics.Windows.DataPresenter.Events.ClipboardPastingEventArgs e) { DataPresenterBase dp = sender as DataPresenterBase; Field notPercentField = dp.DefaultFieldLayout.Fields["NotPercent"]; int fldIndex = e.GetTargetFieldIndex(notPercentField); if (fldIndex >= 0) { string percentSymbol = CultureInfo.CurrentCulture.NumberFormat.PercentSymbol; for (int i = 0, count = e.RecordCount; i < count; i++) { CellValueHolder cvh = e.Values[i, fldIndex]; if (null != cvh && cvh.IsDisplayText && !string.IsNullOrEmpty(cvh.Value as string)) { string originalValue = cvh.Value.ToString(); string newValue = originalValue.Replace(percentSymbol, string.Empty); // if the source value had a percent... if (newValue != originalValue) { double value; // parse the value without the % and divide by 100 if (double.TryParse(newValue, NumberStyles.Any, null, out value)) { cvh.Value = value / 100; cvh.IsDisplayText = false; } } } } } } private void grid_ClipboardCopying(object sender, Infragistics.Windows.DataPresenter.Events.ClipboardCopyingEventArgs e) { DataPresenterBase dp = sender as DataPresenterBase; Field notPercentField = dp.DefaultFieldLayout.Fields["NotPercent"]; int fldIndex = e.GetSourceFieldIndex(notPercentField); // the not percent field displays in exponential but to output the // value in another format, we can change the value of the associated // cell value holders if (fldIndex >= 0) { for (int i = 0, count = e.RecordCount; i < count; i++) { CellValueHolder cvh = e.Values[i, fldIndex]; if (null != cvh && !cvh.IsDisplayText && cvh.Value is double) { double dblValue = (double)cvh.Value; cvh.Value = dblValue.ToString("R"); cvh.IsDisplayText = true; } } } } private void grid_InitializeRecord(object sender, Infragistics.Windows.DataPresenter.Events.InitializeRecordEventArgs e) { if (!e.ReInitialize) { DataRecord dr = e.Record as DataRecord; if (null != dr) { dr.Cells["NotPercent"].Value = .25d; dr.Cells["Percent"].Value = .25d; } } }
Target Platforms: Windows 10, Windows 8.1, Windows 8, Windows 7, Windows Server 2012, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2