オープンファイルダイアログで遊びたい その1(ファイルパスを取得) | プログラミングがわからなすぎる

プログラミングがわからなすぎる

気が向いた時の備忘録。プログラミングは好きなのに物凄く単純なものしか理解できないからメモしていくうちに覚えられたらいいな
ターゲットフレームワークは大体4.7.2

昔ファイルダイアログを使いたいとき、OpenFileDialog openDialog = new ....

みたいなことやった気がしますが

先日WindowsFormアプリケーションのツールボックスを眺めていたら

OpenFileDialogって部品を見つけてしまったので

これ使えるのかな?って思って軽くあそんでいきたいと思いました

 

準備 

ツールボックスからOpenFileDialogを探して

Form上にドロップします

 

ついでにボタンとテキストボックスを置いておきます

 

ボタンを押したらファイルを選ぶ時のウィンドウが出て

ファイルを選んだら、そのファイルのパスがテキストボックスに表示される動きにしたい

 

 Form1.cs

using System;
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のインスタンス名が勝手に設定されるのだとしたら

雑な名前を付けてた時に見えてしまうと恥ずかしいので

今度なんか設定するプロパティがないか探してみようと思います