「C Sharpの基礎 - ダイアログ」の版間の差分
編集の要約なし |
|||
309行目: | 309行目: | ||
| Description || string || ダイアログのフォルダツリービューの上部に表示する説明文を設定する。 | | Description || string || ダイアログのフォルダツリービューの上部に表示する説明文を設定する。 | ||
|- | |- | ||
| RootFolder || System.Environment.SpecialFolder || | | RootFolder || System.Environment.SpecialFolder || ダイアログのフォルダツリービューのルートノードとして設定するフォルダを、<br><code>SpecialFolder</code>列挙体で設定する。 | ||
|- | |- | ||
| SelectedPath || string || | | SelectedPath || string || ユーザが選択したフォルダのパスを取得または設定する。 | ||
|- | |- | ||
| ShowNewFolderButton || bool || | | ShowNewFolderButton || bool || 新規フォルダ作成ボタンの表示・非表示を設定する。<br>表示する場合はtrue、非表示の場合はfalseを指定する。(既定値 : true) | ||
|} | |} | ||
</center> | </center> | ||
<br> | <br> | ||
フォルダ選択ダイアログで、既定値でよい(設定が不要)と思われるプロパティは、以下の1種類である。<br> | フォルダ選択ダイアログで、既定値でよい(設定が不要)と思われるプロパティは、以下の1種類である。<br> | ||
新規フォルダ作成ボタンが存在する方が、ユーザに対して親切であるため、既定値でよい。<br> | |||
* ShowNewFolderButton | * ShowNewFolderButton | ||
<br> | <br> | ||
==== サンプルコード ==== | ==== サンプルコード ==== | ||
<syntaxhighlight lang="c#"> | <syntaxhighlight lang="c#"> |
2021年3月14日 (日) 06:24時点における版
概要
ファイル選択ダイアログ(OpenFileDialog
クラス)は、ファイルを参照する機能を持つダイアログである。
System.Windows.Forms.FileDialog
クラスの派生クラスであり、ファイルを開く操作に必要なプロパティが存在する。
ユーザに開くファイルのパスを選択させるには、ファイル選択ダイアログ(OpenFileDialog
クラス)を使用する。
ファイル保存ダイアログ(SaveFileDialog
クラス)は、ファイル参照する機能を持つダイアログである。
System.Windows.Forms.FileDialog
クラスの派生クラスであり、ファイルを保存する操作に必要なプロパティが存在する。
ユーザに保存するファイルのパスを選択させるには、ファイル保存ダイアログ(SaveFileDialog
クラス)を使用する。
フォルダ選択ダイアログ(FolderBrowserDialog
クラス)は、System.Windows.Forms.CommonDialog
クラスの派生クラスである。
ファイル選択ダイアログと比較すると、設定するプロパティは少ない。
ユーザにフォルダのパスを選択させるには、フォルダ選択ダイアログを使用する。
ファイル選択タイアログ
OpenFileDialogの主なプロパティ
下表に、ファイル選択ダイアログのプロパティのうち、設定を意識する必要がある主なプロパティを示す。
プロパティ名 | データ型 | 意味 |
---|---|---|
AddExtension | bool | 拡張子が入力されなかった場合、自動的に拡張子を付けるかどうかを設定する。 付ける場合はtrue、付けない場合はfalseを指定する。(既定値 : true) |
CheckFileExists | bool | 存在しないファイルが指定された場合、警告メッセージを表示するかどうかを設定する。 表示する場合はtrue、表示しない場合はfalseを指定する。(既定値 : true) |
CheckPathExists | bool | 存在しないパスが指定された場合、警告メッセージを表示するかどうかを設定する。 表示する場合はtrue、表示しない場合はfalseを指定する。(既定値 : true) |
FileName | string | ユーザが選択したファイルパスを取得する。 ダイアログの起動時に初期値として設定することも可能。 |
FileNames | string[] | ユーザが選択した複数のファイルパスを取得する。 Multiselectプロパティがtrueの場合に使用する。 Multiselectプロパティがfalseの場合は、FileNameで取得できるファイルパスがFileNames[0]に格納される。 |
Filter | string | ファイルの種類のプルダウンの選択肢リストを文字列で設定する。 |
FilterIndex | int | ファイルの種類のプルダウンの選択肢リストの初期選択インデックスを設定する。 インデックスの設定値は1から始まる。 ユーザが選択したインデックスを取得することも可能である。(既定値 : 1) |
InitialDirectory | string | ダイアログの起動時に表示するディレクトリを設定する。 設定したディレクトリが存在しない場合は、設定しない場合と同じ動作となる。 |
Multiselect | bool | 複数のファイルを選択できるかどうかを設定する。 複数選択を許可する場合はtrue、許可しない場合はfalseを指定する。(既定値 : false) |
ReadOnlyChecked | bool | 読み取り専用として開くチェックボックスのON/OFFを設定または取得する。 ShowReadOnlyプロパティがtrueの場合のみ有効となる。(既定値 : false) |
SafeFileName | string | ユーザが選択した拡張子を含むファイル名のみ(パスは含まない)を取得する。 |
SafeFileNames | string[] | ユーザが選択した複数の拡張子を含むファイル名のみ(パスは含まない)を取得する。 Multiselectプロパティがtrueに設定されている場合のみ有効となる。 |
ShowHelp | bool | ヘルプボタン[?]を表示するかどうかを設定する。 表示する場合はtrue、表示しない場合はfalseを指定する。(既定値 : false) |
ShowReadOnly | bool | 読み取り専用として開くチェックボックスを表示するかどうかを設定する。 表示する場合はtrue、表示しない場合はfalseを指定する。(既定値 : false) |
Title | string | ダイアログのタイトルバーに表示されるタイトル文字列を設定する。 |
上表のプロパティにおいて、既定値のままでよい(設定が不要)と考えられるプロパティは、以下の4種類である。
拡張子の自動付加は必要なので既定値のtrueでよい。
また、ファイルやディレクトリの存在確認は必要であるため、既定値のtrueでよい。
- AddExtension
- CheckFileExists
- CheckPathExists
- ShowHelp
Filterプロパティ(ファイルの種類)の設定
ダイアログで開くことができるファイルの種類は、Filter
プロパティにフィルタ文字列を設定する。
フィルタ文字列は、ファイルの説明とファイルの拡張子を|
(バーティカルバー)で区切って表現する。
表. フィルタ文字列の設定例
フィルタ | フィルタ文字列 |
---|---|
すべてのファイル | *.*" |
テキストファイル | *.txt" |
テキストファイルとすべてのファイル | *.txt|すべてのファイル (*.*)|*.*" |
XMLファイル | *.xml" |
HTMLファイル | *.html;*.htm" |
XMLファイルとHTMLファイルとすべてのファイル | *.xml|HTML ファイル (*.html, *.htm)|*.html;*.htm|すべてのファイル (*.*)|*.*" |
イメージファイル | *.png;*.jpg;*.gif;*bmp" |
ファイルの種類を複数設定する時、起動時に選択するファイルの種類を指定する場合は、
FilterIndex
プロパティにインデックス値を指定する。(既定値 : 1)
プルダウンの先頭の項目において、2番目の項目は2を指定する。(プルダウンのインデックスは、1から始まるので注意)
ユーザが選択したファイルの種類を保持しておき、次回に選択するファイルの種類を設定する時に便利なプロパティである。
サンプルコード
/// <summary>
/// ボタンがクリックされたときのイベント処理
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
try
{
// テキストボックスからファイル名(ファイルパス)を取得
string fileName = this.textBox1.Text;
// OpenFileDialog クラスのインスタンスを生成
using (OpenFileDialog openFileDialog = new OpenFileDialog())
{
// ファイルの種類リストを設定
openFileDialog.Filter = "テキストファイル (*.txt)|*.txt|すべてのファイル (*.*)|*.*";
// テキストボックスにファイル名(ファイルパス)が設定されている場合、そのファイルのディレクトリを初期表示にする
if (fileName != string.Empty)
{
// FileInfoクラスのインスタンスを生成
FileInfo fileInfo = new FileInfo(fileName);
// ディレクトリー名 (ディレクトリーパス) を取得
string directoryName = fileInfo.DirectoryName;
// 存在する場合は InitialDirectory プロパティに設定
if (Directory.Exists(directoryName))
{
openFileDialog.InitialDirectory = directoryName;
}
}
// ファイルの複数選択を許可する
//openFileDialog.Multiselect = true;
// ダイアログを表示
DialogResult dialogResult = openFileDialog.ShowDialog();
if (dialogResult == DialogResult.Cancel)
{
// キャンセルされたので終了
return;
}
// 複数選択した全てのファイル名を取得
//string[] fileNames = openFileDialog.FileNames;
// 選択されたファイル名(ファイルパス)をテキストボックスに設定
this.textBox1.Text = openFileDialog.FileName;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
ファイル保存ダイアログ
SaveFileDialogの主なプロパティ
下表に、ファイル保存ダイアログのプロパティのうち、設定を意識する必要がある主なプロパティを示す。
表. SaveFileDialogクラスの主なプロパティ
プロパティ名 | データ型 | 意味 |
---|---|---|
AddExtension | bool | 拡張子が入力されなかった場合、自動的に拡張子を付けるかどうかを設定する。 付ける場合はtrue、付けない場合はfalseを指定する。(既定値 : true) |
CheckFileExists | bool | 存在しないファイルが指定された場合、警告メッセージを表示するかどうかを設定する。 表示する場合はtrue、表示しない場合はfalseを指定する。(既定値 : true) |
CheckPathExists | bool | 存在しないパスが指定された場合、警告メッセージを表示するかどうかを設定する。 表示する場合はtrue、表示しない場合はfalseを指定する。(既定値 : true) |
FileName | string | ユーザが選択したファイルパスを取得する。 ダイアログの起動時に初期値として設定することも可能。 |
Filter | string | ファイルの種類のプルダウンの選択肢リストを文字列で設定する。 |
FilterIndex | int | ファイルの種類のプルダウンの選択肢リストの初期選択インデックスを設定する。 インデックスの設定値は1から始まる。 ユーザが選択したインデックスを取得することも可能である。(既定値 : 1) |
InitialDirectory | string | ダイアログの起動時に表示するディレクトリを設定する。 設定したディレクトリが存在しない場合は、設定しない場合と同じ動作となる。 |
OverwritePrompt | bool | ユーザが既に存在するパスを選択した場合に警告メッセージを表示するかどうかを設定する。 表示する場合はtrue、表示しない場合はfalseを指定する。(既定値 : true) |
RestoreDirectory | bool | ダイアログを閉じる前に、ディレクトリを前に選択されていたディレクトリに戻すかどうかをを取得する。 戻す場合はtrue、戻さない場合はfalseを設定する。(既定値 : false) |
ShowHelp | bool | ヘルプボタン[?]を表示するかどうかを設定する。 表示する場合はtrue、表示しない場合はfalseを指定する。(既定値 : false) |
Title | string | ダイアログのタイトルバーに表示されるタイトル文字列を設定する。 |
上表のプロパティにおいて、既定値のままでよい(設定が不要)と考えられるプロパティは、以下の5種類である。
拡張子の自動付加は必要であるため、既定値のtrueでよい。
ファイルの存在確認は不要であるため既定値のfalse、ディレクトリの存在確認は必要であるため既定値のtrueでよい。
また、ファイルが存在する場合の上書き確認は必要であるため、既定値のtrueでよい
- AddExtension
- CheckFileExists
- CheckPathExists
- OverwritePrompt
- ShowHelp
Filterプロパティ(ファイルの種類)の設定
ファイル保存ダイアログで指定できるファイルの種類は、Filter
プロパティにフィルタ文字列を設定する。
フィルタ文字列は、ファイルの説明とファイルの拡張子を|
(バーティカルバー)で区切って表現する。
表. フィルタ文字列の設定例
フィルタ | フィルタ文字列 |
---|---|
すべてのファイル | *.*" |
テキストファイル | *.txt" |
テキストファイルとすべてのファイル | *.txt|すべてのファイル (*.*)|*.*" |
XMLファイル | *.xml" |
HTMLファイル | *.html;*.htm" |
XMLファイルとHTMLファイルとすべてのファイル | *.xml|HTML ファイル (*.html, *.htm)|*.html;*.htm|すべてのファイル (*.*)|*.*" |
イメージファイル | *.png;*.jpg;*.gif;*bmp" |
ファイルの種類を複数設定した時、起動時に選択するファイルの種類を指定する場合は、
FilterIndex
プロパティにインデックス値を指定する。(既定値 : 1)
プルダウンの先頭の項目において、2番目の項目は2を指定する。(プルダウンのインデックスは、1から始まるので注意)
ユーザが選択したファイルの種類を保持しておき、次回に選択するファイルの種類を設定する時に便利なプロパティである。
サンプルコード
/// <summary>
/// ボタンがクリックされたときのイベント処理
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
try
{
// テキストボックスからファイル名(ファイルパス)を取得
string fileName = this.textBox1.Text;
// SaveFileDialog クラスのインスタンスを生成
using (SaveFileDialog saveFileDialog = new SaveFileDialog())
{
// ファイルの種類リストを設定
saveFileDialog.Filter = "テキストファイル (*.txt)|*.txt|すべてのファイル (*.*)|*.*";
// テキストボックスにファイル名(ファイルパス)が設定されている場合、そのファイルのディレクトリを初期表示にする
if (fileName != string.Empty)
{
// FileInfoクラスのインスタンスを生成
FileInfo fileInfo = new FileInfo(fileName);
// ディレクトリー名 (ディレクトリーパス) を取得
string directoryName = fileInfo.DirectoryName;
// 存在する場合は InitialDirectory プロパティに設定
if (Directory.Exists(directoryName))
{
saveFileDialog.InitialDirectory = directoryName;
}
}
// ダイアログを表示
DialogResult dialogResult = saveFileDialog.ShowDialog();
if (dialogResult == DialogResult.Cancel)
{
// キャンセルされたので終了
return;
}
// 選択されたファイル名(ファイルパス)をテキストボックスに設定
this.textBox1.Text = saveFileDialog.FileName;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
フォルダ選択ダイアログ
FolderBrowserDialogクラスの主なプロパティ
下表に、フォルダ選択ダイアログ(FolderBrowserDialog
クラス)のプロパティのうち、設定が必要な主なプロパティを示す。
表. フォルダ選択ダイアログ(FolderBrowserDialog
クラス)の主なプロパティ
プロパティ名 | データ型 | 意味 |
---|---|---|
Description | string | ダイアログのフォルダツリービューの上部に表示する説明文を設定する。 |
RootFolder | System.Environment.SpecialFolder | ダイアログのフォルダツリービューのルートノードとして設定するフォルダを、SpecialFolder 列挙体で設定する。
|
SelectedPath | string | ユーザが選択したフォルダのパスを取得または設定する。 |
ShowNewFolderButton | bool | 新規フォルダ作成ボタンの表示・非表示を設定する。 表示する場合はtrue、非表示の場合はfalseを指定する。(既定値 : true) |
フォルダ選択ダイアログで、既定値でよい(設定が不要)と思われるプロパティは、以下の1種類である。
新規フォルダ作成ボタンが存在する方が、ユーザに対して親切であるため、既定値でよい。
- ShowNewFolderButton
サンプルコード
/// <summary>
/// ボタンがクリックされたときのイベント処理
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
try
{
// テキストボックスからフォルダパスを取得
string folderPath = this.textBox1.Text;
// FolderBrowserDialogクラスのインスタンスを生成
using (FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog())
{
// 説明文を設定(3行まで表示可能)
folderBrowserDialog.Description = "フォルダを選択してください。";
// ユーザが参照可能なフォルダを限定(特定のフォルダとそのサブフォルダのみ選択可能)
folderBrowserDialog.RootFolder = System.Environment.SpecialFolder.MyComputer;
// テキストボックスにフォルダパスが設定されている場合は選択する
if (folderPath != string.Empty)
{
folderBrowserDialog.SelectedPath = folderPath;
}
// ダイアログを表示
DialogResult dialogResult = folderBrowserDialog.ShowDialog();
if (dialogResult == DialogResult.Cancel)
{ // キャンセルされたので終了
return;
}
// 選択されたフォルダパスをテキストボックスに設定
this.textBox1.Text = folderBrowserDialog.SelectedPath;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}