前提・実現したいこと
C#にて
“「実行ファイル」or「ListBox」にドラッグ&ドロップしたフォルダ内の特定フォルダを削除し、ListBoxにパスを表示する。”
C#の勉強のため作成しているのですがうまくいきません。
発生している問題・エラーメッセージ
①エラーが発生していませんが、ListBoxへの表示がうまくいきません。
②実行ファイルへドラック&ドロップされた際の書き方や、パスの渡し方これで良いのかわかりません。
C#を始めてまだ1か月程度なので、未だにインスタンスなどが理解していませんので変なコードを書いているかもしれませんが、エラーも発生していないので直し方もわかりません。
以下に書いたソースを示しますのでが教授お願いします。
特定フォルダを消す処理はまだできていませんので、コメントで書いています。
### Program.cs
C#
1 namespace WindowsFormsApp1 2{ 3 static class Program 4 { 5 /// <summary> 6 /// アプリケーションのメイン エントリ ポイントです。 7 /// </summary> 8 [STAThread] 9 static void Main() 10 { 11 string[] files = System.Environment.GetCommandLineArgs(); 12 13 if (files.Length > 1) 14 { 15 for (int i = 1; i < files.Length; i++) 16 { 17 Process processObj = new Process(); 18 processObj.Other_Process(files); 19 } 20 } 21 else 22 { 23 Application.EnableVisualStyles(); 24 Application.SetCompatibleTextRenderingDefault(false); 25 Application.Run(new Form1()); 26 } 27 28 29 } 30 } 31}
### Form1.cs
C#
1namespace WindowsFormsApp1 2{ 3 public partial class Form1 : Form 4 { 5 public Form1() 6 { 7 InitializeComponent(); 8 this.listBox1.AllowDrop = true; 9 } 10 11 private void listBox1_DragEnter(object sender, DragEventArgs e) 12 { 13 if (e.Data.GetDataPresent(DataFormats.FileDrop)) 14 { 15 e.Effect = DragDropEffects.All; 16 } 17 else 18 { 19 e.Effect = DragDropEffects.None; 20 } 21 } 22 23 private void listBox1_DragDrop(object sender, DragEventArgs e) 24 { 25 string[] fileName = 26 (string[])e.Data.GetData(DataFormats.FileDrop, false); 27 28 Process processObj = new Process(); 29 processObj.Other_Process(fileName); 30 } 31 32 public void listbox_display(string [] item) 33 { 34 listBox1.Items.AddRange(item); 35 } 36 } 37}
### Process.cs
C#
1namespace WindowsFormsApp1 2{ 3 class Process 4 { 5 public void Other_Process(string [] Path) 6 { 7 /*~~特定フォルダなどを消す処理の処理~~*/ 8 9 Form1 frm1Obj = new Form1(); 10 frm1Obj.listbox_display(Path); 11 } 12 } 13}
補足情報(FW/ツールのバージョンなど)
・Microsoft Visual Studio Professional 2019 Version 16.4.5
・Windows 10 64bit
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/01 10:07
2020/03/01 10:23
2020/03/01 10:46
2020/03/01 13:00
2020/03/08 09:45