[.Net] Datagridview naar clipboard met formatting

Pagina: 1
Acties:

Onderwerpen


  • BvDorp
  • Registratie: Januari 2004
  • Laatst online: 14-09 16:39
Voor een VB.Net (VS2008, .NET 3.5) applicatie wil ik graag een unbound DataGridView exporteren naar het clipboard, met behoud van de formatting. Voorlopig krijg ik het nog niet voor elkaar:
code:
1
Clipboard.SetData(DataGridView.GetClipBoardContent())

exporteert alleen maar de ruwe data, geen formatting.

Met
code:
1
2
3
Dim test As New DataObject
test.SetData(DataFormats.EnhancedMetafile, True, DataGridView1.GetClipboardContent())
Clipboard.SetDataObject(test)

Krijg ik nog geen andere data. Ik wil het proberen door eerst een HTML tabel van de DataGridView te gaan maken, en te proberen of het DataObject dit kan vertalen naar een Enhanced Metafile. Wie kan mij verder helpen?

  • zzattack
  • Registratie: Juli 2008
  • Laatst online: 20-09 12:08
Heb je de ClipboardCopyMode van de DataGridView ingesteld?
Ohja, en selecteer je van te voren wel alle rows in je DGV (met DataGridView.SelectAll())?

[ Voor 44% gewijzigd door zzattack op 30-09-2010 15:05 ]


  • BvDorp
  • Registratie: Januari 2004
  • Laatst online: 14-09 16:39
zzattack schreef op donderdag 30 september 2010 @ 15:02:
Heb je de ClipboardCopyMode van de DataGridView ingesteld?
Ohja, en selecteer je van te voren wel alle rows in je DGV (met DataGridView.SelectAll())?
Jep, maar ClipboardCopyMode doet alleen wel/niet headers, en alle data is inderdaad geselecteerd. Clipboard output werkt wel, maar ik wil het met formatting doen dus.

  • Face_-_LeSS
  • Registratie: September 2004
  • Niet online
Volgens min is de methode GetClipboardContent virtual dus je zou je eigen implementatie kunnen maken...

Acties:
  • 0 Henk 'm!

  • BvDorp
  • Registratie: Januari 2004
  • Laatst online: 14-09 16:39
Face_-_LeSS schreef op donderdag 30 september 2010 @ 17:14:
Volgens min is de methode GetClipboardContent virtual dus je zou je eigen implementatie kunnen maken...
Klinkt interessant, kun je iets meer uitleggen? Ik kan redelijk proggen in VB.Net maar heb nog niet genoeg kennis om nu te begrijpen waar ik precies een implementatie van moet maken. Kun je nog wat hints geven?

Acties:
  • 0 Henk 'm!

Verwijderd

Ik denk dat hij bedoeld: de data behandelen door er bijv. zelf tabstops tussen te gooien.

maw. override de 'method' door deze aan een andere class te deriven.

edit: typo

[ Voor 33% gewijzigd door Verwijderd op 02-10-2010 18:23 ]


Acties:
  • 0 Henk 'm!

  • Haan
  • Registratie: Februari 2004
  • Laatst online: 23:11

Haan

dotnetter

Volgens mij heeft hier iemand hetzelfde probleem, en een voorbeeld van hoe je de GetClipboardContent() methode kunt overriden (wel in C#).

Kater? Eerst water, de rest komt later


Acties:
  • 0 Henk 'm!

  • BvDorp
  • Registratie: Januari 2004
  • Laatst online: 14-09 16:39
Haan schreef op zaterdag 02 oktober 2010 @ 18:26:
Volgens mij heeft hier iemand hetzelfde probleem, en een voorbeeld van hoe je de GetClipboardContent() methode kunt overriden (wel in C#).
Dank je, maar nu gaat het nog steeds als tekst naar het Clipboard. Ik zoek een implementatie van Enhanced Meta File, of HTML met formatting.

Acties:
  • 0 Henk 'm!

  • BvDorp
  • Registratie: Januari 2004
  • Laatst online: 14-09 16:39
Samen met iemand anders de route genomen om te proberen het OnPaint event af te vangen, en dat weg te kunnen schrijven naar een Enhanced MetaFile. Helaas werkte dit niet; blijkbaar werkt het vanaf hier al als een directe bitmap, ipv. een dataobject.

Dus nu probeer ik een HTML tabel en/of een RTF tabel te maken, om te kijken of die in AutoCAD goed plakken. Iemand tips?

Acties:
  • 0 Henk 'm!

  • BvDorp
  • Registratie: Januari 2004
  • Laatst online: 14-09 16:39
Nog even terugkoppelen. Het is gelukt, door de volgende stappen.
  1. OnPaint event afvangen en wegschrijven naar en Enhanced Metafile
    -> werkte niet, het Control tekent zichzelf alleen als een print object (ruwe bitmap dus)
  2. HTML tabel genereren
    Werkte prima, maar in AutoCAD kon ik dit niet plakken. Ook niet als AutoCAD Entities, voor de volledigheid.
  3. RTF tabel
    Niet echt geprobeerd, omdat het RTF formaat wel wat lastiger is om te handelen. Er zijn wel programmeer voorbeelden te vinden, maar hou er rekening mee dat je heel hardcoded aan de slag bent.
  4. DrawToBitmap gebruiken
    Werkte prima, maar wel moest het Control groot genoeg zijn om de hele tabel te moeten tekenen, anders krijg je zwarte vlakken. Nog even wat moeten croppen om alle tabel opmaak eraf te slopen.
Pagina: 1