DataGridView.ClipboardCopyMode 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取或设置一个值,该值指示用户是否可以将单元格的文本值复制到 Clipboard,以及是否包括行标题和列标题文本。
public:
property System::Windows::Forms::DataGridViewClipboardCopyMode ClipboardCopyMode { System::Windows::Forms::DataGridViewClipboardCopyMode get(); void set(System::Windows::Forms::DataGridViewClipboardCopyMode value); };
[System.ComponentModel.Browsable(true)]
public System.Windows.Forms.DataGridViewClipboardCopyMode ClipboardCopyMode { get; set; }
[<System.ComponentModel.Browsable(true)>]
member this.ClipboardCopyMode : System.Windows.Forms.DataGridViewClipboardCopyMode with get, set
Public Property ClipboardCopyMode As DataGridViewClipboardCopyMode
属性值
DataGridViewClipboardCopyMode 值之一。 默认值为 EnableWithAutoHeaderText。
- 属性
例外
当设置此属性时,指定的值不是有效的 DataGridViewClipboardCopyMode 值。
示例
下面的代码示例演示如何在 控件中 DataGridView 启用复制。 本示例是如何:使用户从 Windows 窗体 dataGridView 控件将多个单元格复制到剪贴板中提供的更大示例的一部分。
private void Form1_Load(object sender, System.EventArgs e)
{
// Initialize the DataGridView control.
this.DataGridView1.ColumnCount = 5;
this.DataGridView1.Rows.Add(new string[] { "A", "B", "C", "D", "E" });
this.DataGridView1.Rows.Add(new string[] { "F", "G", "H", "I", "J" });
this.DataGridView1.Rows.Add(new string[] { "K", "L", "M", "N", "O" });
this.DataGridView1.Rows.Add(new string[] { "P", "Q", "R", "S", "T" });
this.DataGridView1.Rows.Add(new string[] { "U", "V", "W", "X", "Y" });
this.DataGridView1.AutoResizeColumns();
this.DataGridView1.ClipboardCopyMode =
DataGridViewClipboardCopyMode.EnableWithoutHeaderText;
}
private void CopyPasteButton_Click(object sender, System.EventArgs e)
{
if (this.DataGridView1
.GetCellCount(DataGridViewElementStates.Selected) > 0)
{
try
{
// Add the selection to the clipboard.
Clipboard.SetDataObject(
this.DataGridView1.GetClipboardContent());
// Replace the text box contents with the clipboard text.
this.TextBox1.Text = Clipboard.GetText();
}
catch (System.Runtime.InteropServices.ExternalException)
{
this.TextBox1.Text =
"The Clipboard could not be accessed. Please try again.";
}
}
}
Private Sub Form1_Load(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles Me.Load
' Initialize the DataGridView control.
Me.DataGridView1.ColumnCount = 5
Me.DataGridView1.Rows.Add(New String() {"A", "B", "C", "D", "E"})
Me.DataGridView1.Rows.Add(New String() {"F", "G", "H", "I", "J"})
Me.DataGridView1.Rows.Add(New String() {"K", "L", "M", "N", "O"})
Me.DataGridView1.Rows.Add(New String() {"P", "Q", "R", "S", "T"})
Me.DataGridView1.Rows.Add(New String() {"U", "V", "W", "X", "Y"})
Me.DataGridView1.AutoResizeColumns()
Me.DataGridView1.ClipboardCopyMode = _
DataGridViewClipboardCopyMode.EnableWithoutHeaderText
End Sub
Private Sub CopyPasteButton_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles CopyPasteButton.Click
If Me.DataGridView1.GetCellCount( _
DataGridViewElementStates.Selected) > 0 Then
Try
' Add the selection to the clipboard.
Clipboard.SetDataObject( _
Me.DataGridView1.GetClipboardContent())
' Replace the text box contents with the clipboard text.
Me.TextBox1.Text = Clipboard.GetText()
Catch ex As System.Runtime.InteropServices.ExternalException
Me.TextBox1.Text = _
"The Clipboard could not be accessed. Please try again."
End Try
End If
End Sub
注解
控件 DataGridView 将每个选定单元格的文本表示形式复制到剪贴板。 此值是转换为字符串的单元格值,对于图像单元格,是 属性的值 Description 。
值以 、UnicodeText、 Html和 CommaSeparatedValue 格式复制到剪贴板Text。 这些格式可用于将内容粘贴到记事本、Microsoft Excel 和 Microsoft Word等应用程序中。
控件 DataGridView 复制包含所有选定单元格的最小矩形中包含的单元格。 不包含任何选定单元格的行和列不会在复制的数据中表示。 其余行和列中任何未选定的单元格都由空白占位符表示。 根据复制模式和选择模式,也可以复制复制的行和列的标题值。
当用户复制内容时,控件会将 DataGridView 添加到 DataObject 剪贴板。 从 GetClipboardContent 方法检索此数据对象。 如果要以编程方式将数据对象添加到剪贴板,可以调用此方法。
方法 GetClipboardContent 通过调用 DataGridViewCell.GetClipboardContent 方法检索单个单元格的值。 可以在派生类中替代这两种方法之一或两种方法,以自定义复制单元格的布局或支持其他数据格式。
有关剪贴板操作和数据格式的详细信息,请参阅 Clipboard 类。