入門講座 第11回卒業制作について への返答

投稿で使用できる特殊コードの説明。(別タブで開きます。)
本名は入力しないようにしましょう。
投稿した後で削除するときに使うパスワードです。返答があった後は削除できません。
返答する人が目安にします。相手が小学生か社会人かで返答の仕方も変わります。
最初の投稿が質問の場合、質問者が解決時にチェックしてください。(以降も追加書き込み・返信は可能です。)
※「過去ログ」について書くときはその過去ログのURLも書いてください。

以下の返答は逆順(新しい順)に並んでいます。

投稿者 りえりえ  (社会人) 投稿日時 2010/5/14 21:56:24
葉月様 ありがとうございました。

ドロップ出来ました。ファイル名も表示されました。



投稿者 葉月  (社会人) 投稿日時 2010/5/14 21:44:14
初めまして、こんばんは。
Form1の中にサンプルを丸々コピペして追加ください。
なぜ必要かは、今は難しいと思うので省略します。

>サンプル
    Sub New()

        ' この呼び出しは、Windows フォーム デザイナで必要です。 
        InitializeComponent()

        ' InitializeComponent() 呼び出しの後で初期化を追加します。 

        FullPaths = New ArrayList()
    End Sub
投稿者 (削除されました)  () 投稿日時 2010/5/14 21:39:57
(削除されました)
投稿者 りえりえ  (社会人) 投稿日時 2010/5/14 21:05:12
はじめましてりえりえです。VBの勉強を始めました。よろしくお願いします。
Visual Studio 2005です。

入門講座 第11回卒業制作の3-2-3の確認でドロップしたファイル名が
表示されません。
ドロップしようとすると下記のメッセージダイアログが表示され、FullPaths.Add(FileName)
の箇所が黄色で表示されます。環境のせいかと思うのですがわかるかたがいらっしゃったら
教えて下さい。

「'System.NullReferenceException' の初回例外が MultiFileViewer.exe で発生しました。

追加情報: オブジェクト参照がオブジェクト インスタンスに設定されていません。」

コードは下記のとおりです。

Public Class Form1

    Dim FullPaths As ArrayList

    Private Sub lstFileName_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles lstFileName.DragDrop

        Dim FileName As String

        FileName = CType(e.Data.GetData(DataFormats.FileDrop), String())(0)

        FullPaths.Add(FileName)
        lstFileName.Items.Add(IO.Path.GetFileName(FileName))
    End Sub

    Private Sub lstFileName_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles lstFileName.DragEnter

        If e.Data.GetDataPresent(DataFormats.FileDrop) Then
            e.Effect = DragDropEffects.Copy
        Else
            e.Effect = DragDropEffects.None
        End If
    End Sub