動くコード図鑑技術記事現場の渡り方キャリア論すべての記事About
C#

フィールド化版(コンストラクタ初期化+ Form.Dispose連動)

出典: C# OpenFileDialog をフォームのフィールドにする時の正しい書き方フィールド化版(コンストラクタ初期化+ Form.Dispose連動)

フィールド化版(コンストラクタ初期化+ Form.Dispose連動) (csharp)#95165e179d30
public partial class ImportForm : Form
{
    private readonly OpenFileDialog _csvOfd;
 
    public ImportForm()
    {
        InitializeComponent();
 
        _csvOfd = new OpenFileDialog
        {
            Title = "取り込みファイルを選択",
            Filter = "CSVファイル(*.csv)|*.csv|Excel (*.xlsx)|*.xlsx|すべて(*.*)|*.*",
            FilterIndex = 1,
            Multiselect = false
        };
 
        //フォーム破棄時にOpenFileDialogもDisposeする
        this.Disposed += (_, __)=> _csvOfd.Dispose();
    }
 
    private void btnImport_Click(object sender, EventArgs e)
    {
        if (_csvOfd.ShowDialog(this)== DialogResult.OK)
        {
            ImportCsv(_csvOfd.FileName);
            // _csvOfd.FileName / FileNames / InitialDirectoryは次回まで保持される
        }
    }
}
▸ この snippet は実行結果未収録
▸ 実行結果は未収録です
  • id: #95165e179d30
  • lines: 29
  • extracted: 2026-06-10

Source収録記事

この snippet は記事の「フィールド化版(コンストラクタ初期化+ Form.Dispose連動)」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。

同じ記事から

10
図鑑トップ