質問: textBox.Text + System.IO.Path.GetFileName(uriString) + "\r\n"; // パス文字列からファイル名を抜き出して、テキストボックスにファイル名を書き込む。 } } } ``` ### 試したこと GetFileNameの部分をGetFullPathで試したりしたのですが、うまくファイルパスを取得できない状態です。
回答: まず、textBoxにファイル以外がドロップされるのを防ぐ必要があります。 次に、textBoxのDropの規定の動作であるフルパスでのドロップを書き換える必要があります。 合わせると以下のようなコードになります。 ``` private void textBox_PreviewDragOver(object sender, DragEventArgs e) { var fileList = ((DataObject)e.Data).GetFileDropList(); if (fileList.Count > 0) { e.Effects = DragDropEffects.Copy; e.Handled = true; } else { e.Effects = DragDropEffects.None; e.Handled = true; } } private void textBox_Drop(object sender, DragEventArgs e) { var fileList = ((DataObject)e.Data).GetFileDropList(); var fullName = fileList.Cast().FirstOrDefault(); if (fullName != null) { textBox.Text = System.IO.Path.GetFileName(fullName); e.Handled = true; } } ```