開発環境VB2010 silverlight4でファイルパスを取得する方法

このQ&Aのポイント
  • 開発環境VB2010 silverlight4でドラック&ドロップでファイルパスを取得する方法について教えてください。
  • VB2010 silverlight4でのドラック&ドロップ処理におけるファイルパスの取得方法がわかりません。
  • どなたかVB2010 silverlight4でドラック&ドロップでファイルパスを取得する方法を教えてください。
回答を見る
  • ベストアンサー

画像の取得

画像の取得 質問させていただきます。 開発環境 VB2010 silverlight4 ドラック&ドロップでファイルを表示させるという処理を作成して、 ボタン押下時にファイルパスを取得したいのですが ファイルのパスのとり方がわかりません。 わかる方いたら教えてください。 ドラック&ドロップの処理 Public Sub DropGo1(ByVal sender As Object, ByVal e As System.Windows.DragEventArgs) txtdrop.Text = String.Empty Dim myDataObject As IDataObject = DirectCast(e.Data, IDataObject) Dim dropFiles() As FileInfo = DirectCast(myDataObject.GetData(DataFormats.FileDrop), FileInfo()) For Each fileItem In dropFiles Dim myImage As Stream = fileItem.OpenRead Dim myImageSource As New BitmapImage myImageSource.SetSource(myImage) Image1.Source = myImageSource myImage.Close() imageTextBlock.Text = fileItem.Name txtdrop.Text = fileItem.Name Next End Sub よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

下記のログを試して見て下さい。 http://okwave.jp/qa/q5700032.html

ryuuzakika
質問者

お礼

ありがとうございます。 試してみましたがうまくいきませんでした。

ryuuzakika
質問者

補足

ちょっと弄ってて気付いた事があったので補足します。 fileItem.NameをfileItem.Fullnameとすることで完全パスが取れるみたいなのですが、 実行すると、「ファイルの操作は許可されていません。パス''へのアクセスは拒否されました。」 というエラーが出てきました。

関連するQ&A

  • ドラッグ&ドロップの対象をフォルダに限定したい

    こんばんは。 テキストボックスにドラッグ&ドロップされたフォルダのパスを取得させたいのですがドラッグの対象をフォルダに限定させたい、もしくはファイルがドラッグ&ドロップされたらそのファイルのカレントディレクトリまでのパスを取得させたいのですが、下記のコードでは取得までは出来るのですがファイルがきた場合にファイルまでのパスが取得されてしまいまいます。 よろしくお願いします。 Dim ddpath As String Private Sub TxtPath_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TxtPath.DragEnter If e.Data.GetDataPresent(DataFormats.FileDrop) Then e.Effect = DragDropEffects.Copy Else e.Effect = DragDropEffects.None End If End Sub Private Sub TxtPath_DragDrop(ByVal sender As Object, ByVal e As _System.Windows.Forms.DragEventArgs) Handles TxtPath.DragDrop ddpath = e.Data.GetData(DataFormats.FileDrop)(0) If Dir(ddpath, FileAttribute.Directory) <> "" Then TxtPath.Text = ddpath End If End Sub

  • 遅延バインディングの回避方法

    お世話になります。 テキストボックスにファイルをドロップして、そのファイルパスを取得したいのですが、「Option Strict Onでは、遅延バインディングを使用できません」と出ます。 これを回避するにはどうすればいいのでしょうか? /*-------------------------------------------- Private Sub TextBox_DragDrop(ByVal sender As Object, ByVal e As DragEventArgs) Handles TextBox.DragDrop 'ファイルパス Dim strPath As String 'この行で「遅延バインディング」が発生 strPath = e.Data.GetData(DataFormats.FileDrop)(0) End Sub /*--------------------------------------------

  • ドラッグドロップ(AllowDrop)について

    Form1にドラッグドロップ機能を導入しようと思い AllowDropプロパティをTrueにしてDragDropイベントとDragEnterイベントを記述しました。 実際にデバックしてみるとうまく機能して安心したのですが 後で、bin/debug/AAA.exeを直接クリックしてみるとなぜか機能しません。 MyBase.LoadイベントにMyBase.AllowDrop=Trueと記述してみたいのですがダメでした。 何か設定が間違ってるのでしょうか? ぜひご回答お願いします。 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load   MyBase.AllowDrop = True End Sub Private Sub drag_drop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles MyBase.DragDrop   Dim list As String() = CType(e.Data.GetData(DataFormats.FileDrop, False), String())   For Each a In list      MsgBox(a)   Next End Sub Private Sub drag_enter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles MyBase.DragEnter   e.Effect = DragDropEffects.Copy End Sub

  • D&Dで画像のURLを取得したいです。VB.NET

    VB.NET、WinXPなのですが、 Private Sub TextBox1_DragEnter(ByVal sender As Object, ByVal e As DragEventArgs) If e.Data.GetDataPresent("UniformResourceLocator") Then e.Effect = DragDropEffects.Link Else e.Effect = DragDropEffects.None End If End Sub Private Sub TextBox1_DragDrop(ByVal sender As Object, ByVal e As DragEventArgs) Dim url As String = e.Data.GetData(DataFormats.Text).ToString() TextBox1.Text = url End Sub この方法でファイルWEBサイト上の画像をドラッグ&ドロップすると 例えばこのページのGOOのロゴの場合 テキストボックスには「http://www.goo.ne.jp/」というリンク先のURLが 表示されるのですが、 そうではなくて、ロゴそのもののURL「http://www.goo.ne.jp/img/logo/gootop_logo.gif」 を表示させたいのですが、どのようにしたら良いでしょうか。 よろしくお願いします。m(__)m

  • D&Dでファイルパスを取得

    フォームにD&Dでファイルパスを取得する プログラムを作ろうと思っているのですが、うまくいきません。 ファイルをフォームにドラッグしても禁止マークがでて イベントハンドラがイベントをキャッチしてくれないようです。 なにが問題かアドバイスを頂けないでしょうか? よろしくお願いします。 Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.AllowDrop = True End Sub Private Sub Form1_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles MyBase.DragEnter If e.Data.GetDataPresent(DataFormats.FileDrop) Then e.Effect = DragDropEffects.Copy End If End Sub Private Sub Form1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles MyBase.DragDrop Dim FileName As String FileName = e.Data.GetData(DataFormats.FileDrop)(0) MsgBox(FileName) End Sub End Class ---- 開発環境:VS2005 pro OS:WindowsVista

  • マウスで画像の移動(VB2010)

    FormにPanelを配置してそのなかにPicturBoxを配置しています。 エクスプローラから画像をドラッグアンドドロップして、マウスで画像を移動させようと考えています。 (Panelのサイズを250,250にして、1024*768ピクセルの画像の一部を窓から見ているような感じ) 下記のコードを書いたのですが、マウスを左クリックした状態のままマウスを移動させると、画像がちらつきます。 PictureBox1.Refresh()を入れて多少現象しましたが、根本的な問題の解決には至っておりません。 どなたか?詳しい方いらっしゃいましたら教えて頂けないでしょうか?宜しくお願いいたいます。 Private drawFlag As Boolean Private ptStart As Point Private ptEnd As Point Private Sub PictureBox1_DragEnter(ByVal sender As Object, _ ByVal e As System.Windows.Forms.DragEventArgs) _ Handles PictureBox1.DragEnter If e.Data.GetDataPresent(DataFormats.FileDrop) Then e.Effect = DragDropEffects.Copy Else e.Effect = DragDropEffects.None End If End Sub Private Sub PictureBox1_DragDrop(ByVal sender As Object, _ ByVal e As System.Windows.Forms.DragEventArgs) _ Handles PictureBox1.DragDrop Dim strFileName As String() = CType(e.Data.GetData(DataFormats.FileDrop), String()) Dim fi As New System.IO.FileInfo(strFileName(0)) Dim MyBmp As Bitmap = System.Drawing.Image.FromFile(strFileName(0)) PictureBox1.Image = MyBmp End Sub Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles MyBase.Load PictureBox1.SizeMode = PictureBoxSizeMode.AutoSize PictureBox1.AllowDrop = True drawFlag = False End Sub Private Sub PictureBox1_MouseMove(ByVal sender As Object, _ ByVal e As System.Windows.Forms.MouseEventArgs) _ Handles PictureBox1.MouseMove If drawFlag = False Then Exit Sub End If ptEnd = e.Location Dim ptMove As Point ptMove = ptEnd - ptStart Dim MyLocation As Point MyLocation = PictureBox1.Location + ptMove PictureBox1.Location = MyLocation PictureBox1.Refresh() ptStart = ptEnd End Sub Private Sub PictureBox1_MouseDown(ByVal sender As Object, _ ByVal e As System.Windows.Forms.MouseEventArgs) _ Handles PictureBox1.MouseDown If e.Button = Windows.Forms.MouseButtons.Left Then drawFlag = True ptStart.X = e.X ptStart.Y = e.Y End If End Sub Private Sub PictureBox1_MouseUp(ByVal sender As Object, _ ByVal e As System.Windows.Forms.MouseEventArgs) _ Handles PictureBox1.MouseUp drawFlag = False End Sub

  • ファイルをドラッグドロップでTextBooxにファイル名を出したい

    下記のサンプルコードをWEBサイトで見つけたので ListBox1というところをTextBox1と直して テキストボックスにファイルのフルパスが出るように したかったのですが、Listbox1だと正常なのですが、 TextBox1に変更すると動作しなくなってしまいます。 最後の部分の ListBox1.Items.AddRange(e.Data.GetData(DataFormats.FileDrop))は TextBox1.Text=e.Data.GetData(DataFormats.FileDrop) に変更してあります。 正常に動作するにはどこを直したらよいか教えて頂きたいです。 宜しくお願いします。m(__)m --------------------------------------------------- Private Sub ListBox1_DragEnter(ByVal sender As Object, _ ByVal e As System.Windows.Forms.DragEventArgs) _ Handles ListBox1.DragEnter '関連連づけの確認をしています。 'この場合、ドラッグアンドドロップの形式であるかどうか? If e.Data.GetDataPresent(DataFormats.FileDrop) Then 'ドロップ効果を取得 e.Effect = DragDropEffects.Copy Else 'ドロップ効果を破棄 e.Effect = DragDropEffects.None End If End Sub Private Sub ListBox1_DragDrop(ByVal sender As Object, _ ByVal e As System.Windows.Forms.DragEventArgs) _ Handles ListBox1.DragDrop 'DragEnterイベントで、取得した情報を追加 ListBox1.Items.AddRange(e.Data.GetData(DataFormats.FileDrop)) End Sub

  • テキストボックスの改行について質問です。

    VB超初心者です。 現在VBで複数のCSVファイルを処理するアプリケーションを作成しています。 ドラッグドロップでファイルを認識して処理するのが目的です。 そこでまずテキストボックスにドラッグしたファイル名を表示したいと考えており、 ネットで公開されている以下のソースを利用したいと思っています。 Private Sub TextBox1_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TextBox1.DragEnter If e.Data.GetDataPresent(DataFormats.FileDrop) Then e.Effect = DragDropEffects.Copy End If End Sub Private Sub TextBox1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TextBox1.DragDrop TextBox1.Text = e.Data.GetData(DataFormats.FileDrop)(0) End Sub しかし、これでは複数のファイルの表示ができませんでした。 テキストボックス内で改行させるにはどこを変更したら良いのか全く分かりません。 また、ファイル名ではなくファイルの階層を表示するのも目的と少し異なってしまいます。 調べてみても良くわかりませんでした。 そこでVBに精通している方にお願いです。 希望通りに表示する方法のアドバイスをお願いします!!

  • フォルダーに入った画像名の取得したい

    VB初心者です。色々調べて、セルに「画像名と画像サイズ一覧」を 書き出すことができました。 しかし、書き出せたのはjpgだけで、gifやpngをフォルダー内に入れると エラーが・・・・ どうしたらgifやpngも書き出せるコードになるか教えてください。 よろしくお願いします。 書いたコードは下記です。 Sub GetImageSize(ByVal f, ByRef x, ByRef y) Dim p Set p = LoadPicture(f) x = CLng(CDbl(p.Width) * 24 / 635) y = CLng(CDbl(p.Height) * 24 / 635) Set p = Nothing End Sub Sub main() Dim FSO As New FileSystemObject Dim FLD As Folder Dim FLE As File Dim FF As File Dim x As Long Dim y As Long Set FLD = FSO.GetFolder("C:\画像の入ったフォルダー名") For Each FF In FLD.Files Call GetImageSize(FF, x, y) Name = FF.Name Name_x = x Name_y = y myCnt = myCnt + 1 Cells(myCnt, "A").Value = FF.Name Cells(myCnt, "B").Value = x Cells(myCnt, "C").Value = y Next FF End Sub

  • C#での画像ファイルをドラッグアンドドロップで描画

    C#で画像ファイルをドラッグアンドドロップで描画させるプログラムを作りたいのですが、うまくできません。 ドラッグしたファイル名を読み取る部分までは動作確認できています。このファイル名の画像ファイルをForm1に描画させる部分でエラーになってしまいます。 どのように修正したらよいのかわからないのでお助けください。 ----- using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace Drag {   public partial class Form1 : Form   {     public Form1()     {       InitializeComponent();     }     private void Form1_DragEnter(object sender, DragEventArgs e)     {       e.Effect = DragDropEffects.All;     }     private void Form1_DragDrop(object sender, DragEventArgs e)     {       Graphics g = e.Graphics;   // <------ エラーになる。       if (e.Data.GetDataPresent(DataFormats.FileDrop))       {         foreach (string fileName             in (string[])e.Data.GetData(DataFormats.FileDrop))         {           g.DrawImage(new Bitmap(fileName, new PointF(10F, 50F)));           // Console.WriteLine(fileName); // 動作確認         }       }     }   } }