DataGridView.GetClipboardContent Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Извлекает отформатированные значения, представляющие содержимое выбранных ячеек для копирования в него Clipboard.
public:
virtual System::Windows::Forms::DataObject ^ GetClipboardContent();
public virtual System.Windows.Forms.DataObject GetClipboardContent();
public virtual System.Windows.Forms.DataObject? GetClipboardContent();
abstract member GetClipboardContent : unit -> System.Windows.Forms.DataObject
override this.GetClipboardContent : unit -> System.Windows.Forms.DataObject
Public Overridable Function GetClipboardContent () As DataObject
Возвращаемое значение
Объект, DataObject представляющий содержимое выбранных ячеек.
Исключения
ClipboardCopyMode задан как Disable.
Примеры
В следующем примере кода показано, как программно добавить выбранное DataGridView содержимое в буфер обмена. Этот пример является частью более крупного примера, доступного в разделе "Практическое руководство. Включение пользователей для копирования нескольких ячеек в буфер обмена из элемента управления DataGridView в Windows Forms".
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
Комментарии
Этот метод извлекает данные, представляющие регион, определенный выбранными ячейками. Этот регион является наименьшим прямоугольником, который включает все выбранные ячейки. Значение для каждой выбранной ячейки в этом регионе извлекается путем вызова DataGridViewCell.GetClipboardContent метода. Пустые значения заполнителей используются для неизбранных ячеек в этом регионе. Этот метод объединяет эти значения в DataObject содержащий несколько форматов для копирования в буфер обмена. Поддерживаемые форматы буфера обмена включают DataFormats.Text, DataFormats.UnicodeTextи DataFormats.HtmlDataFormats.CommaSeparatedValue.
Дополнительные сведения см. в описании класса Clipboard.
Примечания для тех, кто наследует этот метод
Переопределите этот метод, чтобы предоставить настраиваемые значения буфера обмена. Это полезно, например, для поддержки копирования значений из пользовательских типов ячеек.