Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Zoury
Salut Eric ! :O)
La classe ClipBoard supporte automatiquement l'ajout d'objet Serializable.
Voici un exemple. '*** Option Explicit On
Public Class Form1 Inherits System.Windows.Forms.Form
#Region " Code généré par le Concepteur Windows Form "
Public Sub New() MyBase.New()
'Cet appel est requis par le Concepteur Windows Form. InitializeComponent()
'Ajoutez une initialisation quelconque après l'appel InitializeComponent()
End Sub
'La méthode substituée Dispose du formulaire pour nettoyer la liste des composants. Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub
'Requis par le Concepteur Windows Form Private components As System.ComponentModel.IContainer
'REMARQUE : la procédure suivante est requise par le Concepteur Windows Form 'Elle peut être modifiée en utilisant le Concepteur Windows Form. 'Ne la modifiez pas en utilisant l'éditeur de code. Friend WithEvents ColumnHeader1 As System.Windows.Forms.ColumnHeader Friend WithEvents ColumnHeader2 As System.Windows.Forms.ColumnHeader Friend WithEvents ColumnHeader3 As System.Windows.Forms.ColumnHeader Friend WithEvents lvCopy As System.Windows.Forms.ListView Friend WithEvents btnCopy As System.Windows.Forms.Button Friend WithEvents btnPaste As System.Windows.Forms.Button Friend WithEvents ColumnHeader4 As System.Windows.Forms.ColumnHeader Friend WithEvents ColumnHeader5 As System.Windows.Forms.ColumnHeader Friend WithEvents ColumnHeader6 As System.Windows.Forms.ColumnHeader Friend WithEvents lvPaste As System.Windows.Forms.ListView <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() Dim ListViewItem1 As System.Windows.Forms.ListViewItem = New System.Windows.Forms.ListViewItem(New String() {"item 1", "subitem 1", "subitem 2"}, -1) Dim ListViewItem2 As System.Windows.Forms.ListViewItem = New System.Windows.Forms.ListViewItem(New String() {"item 2", "subitem 1", "subitem 2"}, -1) Dim ListViewItem3 As System.Windows.Forms.ListViewItem = New System.Windows.Forms.ListViewItem(New String() {"item 3", "subitem 1", "subitem 2"}, -1) Me.lvCopy = New System.Windows.Forms.ListView Me.ColumnHeader1 = New System.Windows.Forms.ColumnHeader Me.ColumnHeader2 = New System.Windows.Forms.ColumnHeader Me.ColumnHeader3 = New System.Windows.Forms.ColumnHeader Me.btnCopy = New System.Windows.Forms.Button Me.btnPaste = New System.Windows.Forms.Button Me.lvPaste = New System.Windows.Forms.ListView Me.ColumnHeader4 = New System.Windows.Forms.ColumnHeader Me.ColumnHeader5 = New System.Windows.Forms.ColumnHeader Me.ColumnHeader6 = New System.Windows.Forms.ColumnHeader Me.SuspendLayout() ' 'lvCopy ' Me.lvCopy.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader1, Me.ColumnHeader2, Me.ColumnHeader3}) Me.lvCopy.Items.AddRange(New System.Windows.Forms.ListViewItem() {ListViewItem1, ListViewItem2, ListViewItem3}) Me.lvCopy.Location = New System.Drawing.Point(8, 8) Me.lvCopy.Name = "lvCopy" Me.lvCopy.Size = New System.Drawing.Size(328, 304) Me.lvCopy.TabIndex = 0 Me.lvCopy.View = System.Windows.Forms.View.Details ' 'btnCopy ' Me.btnCopy.Location = New System.Drawing.Point(280, 320) Me.btnCopy.Name = "btnCopy" Me.btnCopy.Size = New System.Drawing.Size(56, 32) Me.btnCopy.TabIndex = 1 Me.btnCopy.Text = "&Copy" ' 'btnPaste ' Me.btnPaste.Location = New System.Drawing.Point(624, 320) Me.btnPaste.Name = "btnPaste" Me.btnPaste.Size = New System.Drawing.Size(56, 32) Me.btnPaste.TabIndex = 3 Me.btnPaste.Text = "&Paste" ' 'lvPaste ' Me.lvPaste.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader4, Me.ColumnHeader5, Me.ColumnHeader6}) Me.lvPaste.Location = New System.Drawing.Point(344, 8) Me.lvPaste.MultiSelect = False Me.lvPaste.Name = "lvPaste" Me.lvPaste.Size = New System.Drawing.Size(328, 304) Me.lvPaste.TabIndex = 4 Me.lvPaste.View = System.Windows.Forms.View.Details ' 'Form1 ' Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) Me.ClientSize = New System.Drawing.Size(688, 358) Me.Controls.Add(Me.lvPaste) Me.Controls.Add(Me.btnPaste) Me.Controls.Add(Me.btnCopy) Me.Controls.Add(Me.lvCopy) Me.Name = "Form1" Me.Text = "ListViewItem Copy/Paste" Me.ResumeLayout(False)
End Sub
#End Region
Private Sub btnCopy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCopy.Click
' on test si une sélection est en cours If (lvCopy.SelectedItems.Count > 0) Then
Dim lvi As ListViewItem Dim al As ArrayList
' on ajoute les items sélectionnés dans un ' conteneur sérializable. Un ArrayList ' nous convient parfaitement al = New ArrayList(lvCopy.SelectedItems.Count) For Each lvi In lvCopy.SelectedItems al.Add(lvi) Next
' on ajoute le ArrayList au presse-papier Clipboard.SetDataObject(al, False)
End If
End Sub
Private Sub btnPaste_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPaste.Click
' On récupère le contenu du presse papier Dim iData As IDataObject = Clipboard.GetDataObject()
' on détermine le type des données If (iData.GetDataPresent(GetType(ArrayList))) Then
Dim al As ArrayList Dim item As Object
' on récupère notre ArrayList al = DirectCast(iData.GetData(GetType(ArrayList)), ArrayList) ' on boucle sont contenu For Each item In al ' on ajoute les ListViewItems lvPaste.Items.Add(DirectCast(item, ListViewItem)) Next
Else MessageBox.Show("Le format des données dans le presse-papier est invalide", "Erreur") End If
End Sub
End Class '***
-- Cordialement Yanick MVP pour Visual Basic
"Eric" a écrit dans le message de news:%23V%
Bonjour
je cherche comment on fait pour copier dans le presse papier un item d'une listview.
Merci
Salut Eric ! :O)
La classe ClipBoard supporte automatiquement l'ajout d'objet Serializable.
Voici un exemple.
'***
Option Explicit On
Public Class Form1
Inherits System.Windows.Forms.Form
#Region " Code généré par le Concepteur Windows Form "
Public Sub New()
MyBase.New()
'Cet appel est requis par le Concepteur Windows Form.
InitializeComponent()
'Ajoutez une initialisation quelconque après l'appel
InitializeComponent()
End Sub
'La méthode substituée Dispose du formulaire pour nettoyer la liste des
composants.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
'Requis par le Concepteur Windows Form
Private components As System.ComponentModel.IContainer
'REMARQUE : la procédure suivante est requise par le Concepteur Windows
Form
'Elle peut être modifiée en utilisant le Concepteur Windows Form.
'Ne la modifiez pas en utilisant l'éditeur de code.
Friend WithEvents ColumnHeader1 As System.Windows.Forms.ColumnHeader
Friend WithEvents ColumnHeader2 As System.Windows.Forms.ColumnHeader
Friend WithEvents ColumnHeader3 As System.Windows.Forms.ColumnHeader
Friend WithEvents lvCopy As System.Windows.Forms.ListView
Friend WithEvents btnCopy As System.Windows.Forms.Button
Friend WithEvents btnPaste As System.Windows.Forms.Button
Friend WithEvents ColumnHeader4 As System.Windows.Forms.ColumnHeader
Friend WithEvents ColumnHeader5 As System.Windows.Forms.ColumnHeader
Friend WithEvents ColumnHeader6 As System.Windows.Forms.ColumnHeader
Friend WithEvents lvPaste As System.Windows.Forms.ListView
<System.Diagnostics.DebuggerStepThrough()> Private Sub
InitializeComponent()
Dim ListViewItem1 As System.Windows.Forms.ListViewItem = New
System.Windows.Forms.ListViewItem(New String() {"item 1", "subitem 1",
"subitem 2"}, -1)
Dim ListViewItem2 As System.Windows.Forms.ListViewItem = New
System.Windows.Forms.ListViewItem(New String() {"item 2", "subitem 1",
"subitem 2"}, -1)
Dim ListViewItem3 As System.Windows.Forms.ListViewItem = New
System.Windows.Forms.ListViewItem(New String() {"item 3", "subitem 1",
"subitem 2"}, -1)
Me.lvCopy = New System.Windows.Forms.ListView
Me.ColumnHeader1 = New System.Windows.Forms.ColumnHeader
Me.ColumnHeader2 = New System.Windows.Forms.ColumnHeader
Me.ColumnHeader3 = New System.Windows.Forms.ColumnHeader
Me.btnCopy = New System.Windows.Forms.Button
Me.btnPaste = New System.Windows.Forms.Button
Me.lvPaste = New System.Windows.Forms.ListView
Me.ColumnHeader4 = New System.Windows.Forms.ColumnHeader
Me.ColumnHeader5 = New System.Windows.Forms.ColumnHeader
Me.ColumnHeader6 = New System.Windows.Forms.ColumnHeader
Me.SuspendLayout()
'
'lvCopy
'
Me.lvCopy.Columns.AddRange(New System.Windows.Forms.ColumnHeader()
{Me.ColumnHeader1, Me.ColumnHeader2, Me.ColumnHeader3})
Me.lvCopy.Items.AddRange(New System.Windows.Forms.ListViewItem()
{ListViewItem1, ListViewItem2, ListViewItem3})
Me.lvCopy.Location = New System.Drawing.Point(8, 8)
Me.lvCopy.Name = "lvCopy"
Me.lvCopy.Size = New System.Drawing.Size(328, 304)
Me.lvCopy.TabIndex = 0
Me.lvCopy.View = System.Windows.Forms.View.Details
'
'btnCopy
'
Me.btnCopy.Location = New System.Drawing.Point(280, 320)
Me.btnCopy.Name = "btnCopy"
Me.btnCopy.Size = New System.Drawing.Size(56, 32)
Me.btnCopy.TabIndex = 1
Me.btnCopy.Text = "&Copy"
'
'btnPaste
'
Me.btnPaste.Location = New System.Drawing.Point(624, 320)
Me.btnPaste.Name = "btnPaste"
Me.btnPaste.Size = New System.Drawing.Size(56, 32)
Me.btnPaste.TabIndex = 3
Me.btnPaste.Text = "&Paste"
'
'lvPaste
'
Me.lvPaste.Columns.AddRange(New System.Windows.Forms.ColumnHeader()
{Me.ColumnHeader4, Me.ColumnHeader5, Me.ColumnHeader6})
Me.lvPaste.Location = New System.Drawing.Point(344, 8)
Me.lvPaste.MultiSelect = False
Me.lvPaste.Name = "lvPaste"
Me.lvPaste.Size = New System.Drawing.Size(328, 304)
Me.lvPaste.TabIndex = 4
Me.lvPaste.View = System.Windows.Forms.View.Details
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(688, 358)
Me.Controls.Add(Me.lvPaste)
Me.Controls.Add(Me.btnPaste)
Me.Controls.Add(Me.btnCopy)
Me.Controls.Add(Me.lvCopy)
Me.Name = "Form1"
Me.Text = "ListViewItem Copy/Paste"
Me.ResumeLayout(False)
End Sub
#End Region
Private Sub btnCopy_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnCopy.Click
' on test si une sélection est en cours
If (lvCopy.SelectedItems.Count > 0) Then
Dim lvi As ListViewItem
Dim al As ArrayList
' on ajoute les items sélectionnés dans un
' conteneur sérializable. Un ArrayList
' nous convient parfaitement
al = New ArrayList(lvCopy.SelectedItems.Count)
For Each lvi In lvCopy.SelectedItems
al.Add(lvi)
Next
' on ajoute le ArrayList au presse-papier
Clipboard.SetDataObject(al, False)
End If
End Sub
Private Sub btnPaste_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnPaste.Click
' On récupère le contenu du presse papier
Dim iData As IDataObject = Clipboard.GetDataObject()
' on détermine le type des données
If (iData.GetDataPresent(GetType(ArrayList))) Then
Dim al As ArrayList
Dim item As Object
' on récupère notre ArrayList
al = DirectCast(iData.GetData(GetType(ArrayList)), ArrayList)
' on boucle sont contenu
For Each item In al
' on ajoute les ListViewItems
lvPaste.Items.Add(DirectCast(item, ListViewItem))
Next
Else
MessageBox.Show("Le format des données dans le presse-papier est
invalide", "Erreur")
End If
End Sub
End Class
'***
--
Cordialement
Yanick
MVP pour Visual Basic
"Eric" <rasha_500@yahoo.fr> a écrit dans le message de
news:%23V%23dXABbFHA.3400@tk2msftngp13.phx.gbl...
Bonjour
je cherche comment on fait pour copier dans le presse papier un item d'une
listview.
La classe ClipBoard supporte automatiquement l'ajout d'objet Serializable.
Voici un exemple. '*** Option Explicit On
Public Class Form1 Inherits System.Windows.Forms.Form
#Region " Code généré par le Concepteur Windows Form "
Public Sub New() MyBase.New()
'Cet appel est requis par le Concepteur Windows Form. InitializeComponent()
'Ajoutez une initialisation quelconque après l'appel InitializeComponent()
End Sub
'La méthode substituée Dispose du formulaire pour nettoyer la liste des composants. Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub
'Requis par le Concepteur Windows Form Private components As System.ComponentModel.IContainer
'REMARQUE : la procédure suivante est requise par le Concepteur Windows Form 'Elle peut être modifiée en utilisant le Concepteur Windows Form. 'Ne la modifiez pas en utilisant l'éditeur de code. Friend WithEvents ColumnHeader1 As System.Windows.Forms.ColumnHeader Friend WithEvents ColumnHeader2 As System.Windows.Forms.ColumnHeader Friend WithEvents ColumnHeader3 As System.Windows.Forms.ColumnHeader Friend WithEvents lvCopy As System.Windows.Forms.ListView Friend WithEvents btnCopy As System.Windows.Forms.Button Friend WithEvents btnPaste As System.Windows.Forms.Button Friend WithEvents ColumnHeader4 As System.Windows.Forms.ColumnHeader Friend WithEvents ColumnHeader5 As System.Windows.Forms.ColumnHeader Friend WithEvents ColumnHeader6 As System.Windows.Forms.ColumnHeader Friend WithEvents lvPaste As System.Windows.Forms.ListView <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() Dim ListViewItem1 As System.Windows.Forms.ListViewItem = New System.Windows.Forms.ListViewItem(New String() {"item 1", "subitem 1", "subitem 2"}, -1) Dim ListViewItem2 As System.Windows.Forms.ListViewItem = New System.Windows.Forms.ListViewItem(New String() {"item 2", "subitem 1", "subitem 2"}, -1) Dim ListViewItem3 As System.Windows.Forms.ListViewItem = New System.Windows.Forms.ListViewItem(New String() {"item 3", "subitem 1", "subitem 2"}, -1) Me.lvCopy = New System.Windows.Forms.ListView Me.ColumnHeader1 = New System.Windows.Forms.ColumnHeader Me.ColumnHeader2 = New System.Windows.Forms.ColumnHeader Me.ColumnHeader3 = New System.Windows.Forms.ColumnHeader Me.btnCopy = New System.Windows.Forms.Button Me.btnPaste = New System.Windows.Forms.Button Me.lvPaste = New System.Windows.Forms.ListView Me.ColumnHeader4 = New System.Windows.Forms.ColumnHeader Me.ColumnHeader5 = New System.Windows.Forms.ColumnHeader Me.ColumnHeader6 = New System.Windows.Forms.ColumnHeader Me.SuspendLayout() ' 'lvCopy ' Me.lvCopy.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader1, Me.ColumnHeader2, Me.ColumnHeader3}) Me.lvCopy.Items.AddRange(New System.Windows.Forms.ListViewItem() {ListViewItem1, ListViewItem2, ListViewItem3}) Me.lvCopy.Location = New System.Drawing.Point(8, 8) Me.lvCopy.Name = "lvCopy" Me.lvCopy.Size = New System.Drawing.Size(328, 304) Me.lvCopy.TabIndex = 0 Me.lvCopy.View = System.Windows.Forms.View.Details ' 'btnCopy ' Me.btnCopy.Location = New System.Drawing.Point(280, 320) Me.btnCopy.Name = "btnCopy" Me.btnCopy.Size = New System.Drawing.Size(56, 32) Me.btnCopy.TabIndex = 1 Me.btnCopy.Text = "&Copy" ' 'btnPaste ' Me.btnPaste.Location = New System.Drawing.Point(624, 320) Me.btnPaste.Name = "btnPaste" Me.btnPaste.Size = New System.Drawing.Size(56, 32) Me.btnPaste.TabIndex = 3 Me.btnPaste.Text = "&Paste" ' 'lvPaste ' Me.lvPaste.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader4, Me.ColumnHeader5, Me.ColumnHeader6}) Me.lvPaste.Location = New System.Drawing.Point(344, 8) Me.lvPaste.MultiSelect = False Me.lvPaste.Name = "lvPaste" Me.lvPaste.Size = New System.Drawing.Size(328, 304) Me.lvPaste.TabIndex = 4 Me.lvPaste.View = System.Windows.Forms.View.Details ' 'Form1 ' Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) Me.ClientSize = New System.Drawing.Size(688, 358) Me.Controls.Add(Me.lvPaste) Me.Controls.Add(Me.btnPaste) Me.Controls.Add(Me.btnCopy) Me.Controls.Add(Me.lvCopy) Me.Name = "Form1" Me.Text = "ListViewItem Copy/Paste" Me.ResumeLayout(False)
End Sub
#End Region
Private Sub btnCopy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCopy.Click
' on test si une sélection est en cours If (lvCopy.SelectedItems.Count > 0) Then
Dim lvi As ListViewItem Dim al As ArrayList
' on ajoute les items sélectionnés dans un ' conteneur sérializable. Un ArrayList ' nous convient parfaitement al = New ArrayList(lvCopy.SelectedItems.Count) For Each lvi In lvCopy.SelectedItems al.Add(lvi) Next
' on ajoute le ArrayList au presse-papier Clipboard.SetDataObject(al, False)
End If
End Sub
Private Sub btnPaste_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPaste.Click
' On récupère le contenu du presse papier Dim iData As IDataObject = Clipboard.GetDataObject()
' on détermine le type des données If (iData.GetDataPresent(GetType(ArrayList))) Then
Dim al As ArrayList Dim item As Object
' on récupère notre ArrayList al = DirectCast(iData.GetData(GetType(ArrayList)), ArrayList) ' on boucle sont contenu For Each item In al ' on ajoute les ListViewItems lvPaste.Items.Add(DirectCast(item, ListViewItem)) Next
Else MessageBox.Show("Le format des données dans le presse-papier est invalide", "Erreur") End If
End Sub
End Class '***
-- Cordialement Yanick MVP pour Visual Basic
"Eric" a écrit dans le message de news:%23V%
Bonjour
je cherche comment on fait pour copier dans le presse papier un item d'une listview.