昔ファイルダイアログを使いたいとき、OpenFileDialog openDialog = new ....
みたいなことやった気がしますが
先日WindowsFormアプリケーションのツールボックスを眺めていたら
OpenFileDialogって部品を見つけてしまったので
これ使えるのかな?って思って軽くあそんでいきたいと思いました
準備
ツールボックスからOpenFileDialogを探して
Form上にドロップします
ついでにボタンとテキストボックスを置いておきます
ボタンを押したらファイルを選ぶ時のウィンドウが出て
ファイルを選んだら、そのファイルのパスがテキストボックスに表示される動きにしたい
Form1.cs
using System.Windows.Forms;
namespace TestApp
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog open = openFileDialog1;
open.ShowDialog();
}
private void openFileDialog1_FileOk(object sender, System.ComponentModel.CancelEventArgs e)
{
textBox1.Text = openFileDialog1.FileName;
}
}
}
もしかしてこれだけで動いてくれるかもって思ったからこれで実行してみます
button1のクリックイベントでopenFileDialog1を開きます
Formに張り付けたopenFileDialog1をダブルクリックしたら
FileOkのメソッドを追加してくれました
これがおそらくファイルダイアログ画面でファイルを選択し「開く」などの
ボタンを押したときに走るイベントだと思うので
ここでtextbox1.TextにFileNameを設定してみます
このFileNameって選択したファイルのファイル名なのかフルパスなのかは
普通に覚えてないので実行してみて確認します
実行結果
button1をクリックします
ファイルを保存する時とか選択したいときによく見るあの画面がでてきました
開いたすぐはドキュメント配下が写ってました
(PCをダークモードにしているせいで画面が真っ黒…)
テスト用ファイルを用意したフォルダに移動します
テスト用ファイルはC:\tmp配下に配置してあります
file.txtを選択して「開く」をクリックします
テキストボックスに選択したファイルのパスが表示されました
FileNameプロパティはフルパスでした
メモ
ファイルダイアログを開きたい
openFileDialog1.ShowDialog();
選択されたファイルのフルパスを取得したい
openFileDialog1.FileName;
※openFileDialog1はインスタンス
軽くやってみて気になったのは
ファイルダイアログを開いたとき、ファイル名に設定されている「openFileDialog1」
OpenFileDialogのインスタンス名が勝手に設定されるのだとしたら
雑な名前を付けてた時に見えてしまうと恥ずかしいので
今度なんか設定するプロパティがないか探してみようと思います