OpenFileDialogボックスでは、[ファイルの種類] ボックスに表示される選択肢を設定することができます。
選択肢を設定する場合はFilterプロパティに次のような書式を設定します。
“表示する文字列|フィルターする拡張子”
たとえば、Filterプロパティに “png画像|*.png” という文字列を設定すると、[ファイルの種類]ボックスは下図のようになり拡張子が*.pngのファイルのみを選択できるようになります。
また、複数の選択肢を設定することもできます。
たとえば”png画像|*.png|gif画像|*.gif”というフィルターを設定すると、png画像の選択肢とgif画像の選択肢が追加されます。
さらに、1つの選択肢で複数の拡張子をフィルターすることもできます。
この場合は、フィルターする拡張子をセミコロン(;)で区切って指定します。
たとえば”jpg画像|*.jpg;*.jpeg”と設定すると[ファイルの種類]ボックスは下図のようになり、*.jpgと*.jpegのファイルを選択できるようになります。
下記は、以上を踏まえて[ファイルの種類] ボックスに表示される選択肢を設定する例です。
画面デザインは下記のようにしました(クリックで拡大表示します)。
VBの例
'OpefFileDialogに設定するフィルター文字列格納用変数 Private strFilter As String = "" ' [追加]ボタンクリック時の処理 Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click 'strFilterにフィルター文字列がすでにあるか? If strFilter.Length > 0 Then '文字列の末尾に"|"を追加 strFilter &= "|" End If '「表示する文字列|フィルターする拡張子」の文字列をstrFilterに格納 strFilter &= txtString.Text & "|" & txtFilter.Text End Sub ' [ダイアログの表示]ボタンクリック時の処理 Private Sub btnShowDialog_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnShowDialog.Click '★★★OpenFileDialogのフィルターを設定★★★ OpenFileDialog1.Filter = strFilter 'ダイアログボックスの表示 If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then '選択されたファイルをテキストボックスに表示する txtSelectedFile.Text = OpenFileDialog1.FileName End If End Sub
C#の例
// OpefFileDialogに設定するフィルター文字列格納用変数 private string strFilter = ""; // [追加]ボタンクリック時の処理 private void btnAdd_Click(object sender, EventArgs e) { // strFilterにフィルター文字列がすでにあるか? if ( strFilter.Length > 0 ) { //文字列の末尾に"|"を追加 strFilter += "|"; } //「表示する文字列|フィルターする拡張子」の文字列をstrFilterに格納 strFilter += txtString.Text + "|" + txtFilter.Text; } // [ダイアログの表示]ボタンクリック時の処理 private void btnShowDialog_Click(object sender, EventArgs e) { // ★★★OpenFileDialogのフィルターを設定★★★ openFileDialog1.Filter = strFilter; // ダイアログボックスの表示 if ( openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK ) { // 選択されたファイルをテキストボックスに表示する txtSelectedFile.Text = openFileDialog1.FileName; } }
実行例は下記の通りです。
Please follow and like us:
コメント