web-dev-qa-db-ja.com

C#-OpenFileDialogをカスタマイズして複数のフォルダーとファイルを選択する方法は?

投稿しました--- OpenFileDialogを使用してフォルダを選択する方法は? 、正しい答えが見つかりませんでした。だから、私は私の質問を変更しました。

OpenFileDialogをカスタマイズして、複数のフォルダーとファイルを選択したいと思います。私は解決策を見つけようとしましたが、それに関するいくつかの投稿を見ることができました。

インターネットから、次のプロジェクトを見つけました https://github.com/scottwis/OpenFileOrFolderDialog

しかし、これを使用しているときに、私は1つの問題に直面しました。 GetOpenFileName関数と[〜#〜] openfilename [〜#〜]MFCからの構造。そして、[〜#〜] openfilename [〜#〜]には、 "templateID "。ダイアログテンプレートの識別子です。また、サンプルプロジェクトには、「res1.rc」ファイルがあり、テンプレートダイアログも含まれています。

しかし、わかりませんこのファイルをC#プロジェクトに添付するにはどうすればよいですか?

または、-"OpenFileDialogをカスタマイズして複数のフォルダーとファイルを選択する方法"に関する他の完璧な解決策はありますか?

14
Yun

FileNameプロパティの代わりにFileNamesプロパティを使用する場合は、選択された各ファイルの文字列配列を取得し、Shiftキーを使用して複数のファイルを選択します。そのようです:

private void button1_Click(object sender, EventArgs e)
{
    OpenFileDialog x = new OpenFileDialog();
    x.Multiselect = true;
    x.ShowDialog();
    string[] result = x.FileNames;

    foreach (string y in result)
       MessageBox.Show(y, "Selected Item", MessageBoxButtons.OK, MessageBoxIcon.Information);
}

ファイルとフォルダの場合、 WinAPI に含まれているCommonOpenFileDialogを使用する必要があります。特定のクラスは、 ここ です。

11
JMK

これを試して:

openFileDialog.Multiselect = true;
1
Embedd_Khurja

そのような組み込みの.Netコントロールを取得できない場合があります。間違いなく、OpenFileDialogはファイルブラウザとフォルダブラウザの両方として機能することはできません。あなたが2番目に見つけたもののようなサードパーティのツールがあなた自身のコントロールをするために行く2つの選択肢があります。驚くべきことに、独自のコントロールの非常に単純なバージョンを作成することは非常に難しいとは思わないかもしれません。

1
Arif Eqbal