14

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

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

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

しかし、これを使用しているうちに、1つの問題に直面しました。MFC のGetOpenFileName関数とOPENFILENAME構造体を使用します。また、OPENFILENAMEには「 templateID 」という名前のメンバーがあります。ダイアログ テンプレートの識別子です。サンプル プロジェクトには「res1.rc」ファイルがあり、テンプレート化されたダイアログも含まれています。

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

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

4

3 に答える 3

12

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);
}

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

于 2012-07-24T09:37:56.377 に答える
1

これを試して:

openFileDialog.Multiselect = true;
于 2012-07-24T09:38:21.543 に答える
1

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

于 2012-07-24T09:57:09.863 に答える