tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^5: DataGridViewのデータをEXCELファイルにコピー&ペーストする際
投稿日: 2009/06/04(Thu) 21:12
投稿者Hongliang
> Dim myDataObject As New DataObject()    '最終的にClipBordに代入するDataObject
> Dim GridDataObject As New DataObject()  'DataGridViewから取得するDataObject
>
> 'GetClipboardContentでDataGridViewから取得
> GridDataObject.SetData(sender.GetClipboardContent) '

これだと、GridDataObject に GetClipboardContent で取得される DataObject そのものが
格納されてしまいます。
形式を指定せず SetData したものは(一部を除き)型名が形式文字列になりますから、
この GridDataObject は "System.Windows.Forms.DataObject" 形式のデータを持っている
だけということになります。
当然、GridDataObject.GetData(DataFormats.Text) とやっても、
GridDataObject には DataFormats.Text のデータが含まれないので Nothing が返るだけ。
結局 myDataObject には 3 つの中身が空の形式が SetData されているだけなので、
「貼り付け」られてもなにもできません。
では DataFormats.Text のデータを含んでいるのはというと、GetClipboardContent
で取得された DataObject です。これから GetData してください。
要するに、この GridDataObject なる変数は無用です。

> 原因としてはっきりとした情報では無いのですが、他IT系情報サイトにて、
> .NET Frameworkが、キーイベント後にDataGridViewのセルをコピーしてしまうため、
> 現時点で DataGridViewからのキーイベントでのコピーは、
> スリープなどを使わなければ無理である
こちらは、編集中のセルと GetClipboardContent で取得できるデータ間の問題でしょうか。
文脈が分からないので解説できません。
そのページを示していただければ説明できるかも知れません。
// 私の知識外の話だったら私にはどうしようもないですけど。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。