剪贴板管理
剪贴板管理功能提供了执行复制和粘贴操作的功能。
复制操作
描述了如何将数据复制到剪贴板。你和你的终端用户可以从GridControl中复制数据到MS Word,Excel,Outlook和其他应用程序。
void OnClick(object sender, RoutedEventArgs e) { grid.CopyRangeToClipboard(0, grid.VisibleRowCount - 1); }如果需要连格式都一并复制,可以给TableView添加ClipboardMode属性
<dxg:GridControl> <dxg:GridControl.View> <dxg:TableView ClipboardMode="Formatted" /> </dxg:GridControl.View> </dxg:GridControl>
粘贴操作
描述了如何从剪贴板粘贴数据。你和你的终端用户可以在GridControl中粘贴来自MS Word, Excel, Outlook和其他应用程序的数据。
在运行时粘贴
终端用户可以使用Ctrl+V或Shift+Insert快捷键在GridControl中粘贴纯数据和格式化数据。
粘贴操作有以下具体内容:
- 如果目标列不能接受粘贴行中的任何值,则跳过该行。
- 不支持粘贴图形数据。
- 在更新粘贴模式下,粘贴过程中会跳过只读和不可编辑的列。
- 如果数据源不允许添加新行,则禁用添加新行。
您可以使用粘贴操作向GridControl添加新行。在这种情况下,被粘贴的数据作为新行添加到数据源中,GridControl也被更新。数据源必须支持添加新行才能允许粘贴。
在下图中,粘贴操作将Excel中的数据添加到GridControl中。

<dxg:GridControl> <dxg:GridControl.View> <dxg:TableView PasteMode="Append" /> </dxg:GridControl.View> </dxg:GridControl>更新数据
可以使用粘贴操作来更新现有GridControl的单元格。在下图中,粘贴操作通过Excel中的数据更新GridControl的数据。

<dxg:GridControl> <dxg:GridControl.View> <dxg:TableView PasteMode="Update" /> </dxg:GridControl.View> </dxg:GridControl>粘贴代码
您可以使用TableView.OnPaste(或TreeListView.OnPaste)方法在GridControl中粘贴剪贴板中的数据。下面的代码示例演示了如何用剪贴板的数据更新所需的行。
当然,这是按钮事件:
void OnClick(object sender, RoutedEventArgs e) { view.FocusedRowHandle = 5; view.OnPaste(); }粘贴加工处理
GridControl提供了以下事件,允许您手动处理粘贴操作。处理这些事件可以覆盖默认的粘贴行为并执行自定义操作。
<dxg:GridControl> <dxg:GridControl.View> <dxg:TableView PasteMode="Update" ClipboardRowCellValuePasting="OnClipboardRowCellValuePasting" /> </dxg:GridControl.View> </dxg:GridControl>
void OnClipboardRowCellValuePasting(object sender, ClipboardRowCellValuePastingEventArgs e) { if(e.Column.FieldName == "Group") { string pastedString = e.Value.ToString(); string newString = pastedString.Replace('_', ' '); string newCapitalizedString = Regex.Replace(newString, @"(^\w)|(\s\w)", m => m.Value.ToUpper()); e.Value = newString; } }