2009-05-25 68 views
2

DataGridViewを使用したC#Windowsフォームアプリケーションがあります。DataGridViewコピー貼り付け(スタイル、背景色、...)

コピー&貼り付け(Excelのデータグリッドとctrl-vでデータを選択した後にctrl-cを入力)はほぼ正常です。

問題は、スタイル(背景色など)がセル値のみExcelに貼り付けられていないことです。私は、datagridviewのどこかでプロパティを変更する必要がありますかカスタムコードを実装しますか?

おかげで、クリップボードの動作に影響を与えのみデータグリッドのプロパティ私の知る限り

答えて

0

は「ClipBoardCopyMode」であり、そのほとんどは、「ヘッダを使用するか、ではない」です。私が基盤を離れていない限り、あなたはそれに付随するフォーマットをしたい場合は、それを自分でクリップボードに入れなければならないでしょう。しかし、正直言って、ユーザーとして私は書式設定が欲しくない。それは私が物事をコピーするとき、私は現在使用している形式に一致するようにそれらを再フォーマットする必要がありますナットを駆動します。むしろデータに貼り付けるほうがいいですし、表示されているようにフォーマットしたい場合は、それを行います。 自分でロールする場合は、Excelのクリップボード形式を使用することをお勧めします。そうすれば、ユーザーは「PasteSpecial」値を使用できます。これはあなたにいくつかのアイデアを与えるかもしれません:http://www.codeguru.com/vb/gen/vb_misc/samples/article.php/c6393

0

私は同じ問題を抱えており、Control.DrawToBitmapを使ってビットマップをクリップボードに追加しました。最初に、DataGridViewの '標準'クリップボードの内容を両方とも取り込んだDataObjectを使用し、次にビットマップを追加し、DataObjectをクリップボードにプッシュすると、ユーザーは '特殊なペースト'機能を使用してビットマップまたはプレーンテキストを選択できます。ような何か:

Dim data as New DataObject() 
Dim html As DataObject = DGV.GetClipboardContent() 
data.SetData(DataFormats.Html, html.GetData(DataFormats.Html)) 
' create some rectangle, probably using DataGridView.Bounds 
Dim bitmap As New System.Drawing.Bitmap(rectangle.Width, rectangle.Height) 
DGV.DrawToBitmap(bitmap, rectangle) 
data.SetData(DataFormats.Bitmap, bitmap) 

は、RTF出力を生成する可能性もありますが、RTFコードは非常に複雑であるので、これは非常に多くの作業です。しかし、いくつかのコード例があります。

そして、私はこのexampleを見つけただけで、Excelや他の形式のXML出力を使用しました。

関連する問題