タイトル : 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 で取得できるデータ間の問題でしょうか。 文脈が分からないので解説できません。 そのページを示していただければ説明できるかも知れません。 // 私の知識外の話だったら私にはどうしようもないですけど。 |