ファイルの保存ダイアログ

IronPythonによるGUIで、ファイルを保存するダイアログを開く処理を実装する。
SharpDevelopを使ってコードを書くことを想定する。

まず、ボタンを一つ設置する。このボタンを押したときにファイル保存ダイアログが開いてユーザーにフォルダとファイル名の入力を促すようにしたい。
SharpDevelopの左側のWindows Formsから「SaveFIleDialog」をドラッグして、下図のような状態にする。

ここで、ドラッグされた「saveFileDialog1」をダブルクリックするとコードの中で

    self._saveFileDialog1.FileOk += self.SaveFileDialog1FileOk
    (中略)
def SaveFileDialog1FileOk(self, sender, e):

このような行が追加される。これらはダイアログのOKボタンを押したときの処理に対応している。
ボタンを押したときに、ファイル保存のダイアログを開くようにするには以下の記述を追加する。

    self._button1.Click += self.Button1Click
    (中略)
    def Button1Click(self, sender, e):
        self._saveFileDialog1.ShowDialog()

以上で、動くコードになる。ここでは、ファイル保存ダイアログでOKとしたときにファイルパスをprintする。
コードの全体は以下の通り。

import System.Drawing
import System.Windows.Forms

from System.Drawing import *
from System.Windows.Forms import *

class MainForm(Form):
    def __init__(self):
        self.InitializeComponent()
   
    def InitializeComponent(self):
        self._button1 = System.Windows.Forms.Button()
        self._saveFileDialog1 = System.Windows.Forms.SaveFileDialog()
        self.SuspendLayout()
        #
        # button1
        #
        self._button1.Location = System.Drawing.Point(67, 40)
        self._button1.Name = "button1"
        self._button1.Size = System.Drawing.Size(148, 51)
        self._button1.TabIndex = 0
        self._button1.Text = "button1"
        self._button1.UseVisualStyleBackColor = True
        self._button1.Click += self.Button1Click
        #
        # saveFileDialog1
        #
        self._saveFileDialog1.FileOk += self.SaveFileDialog1FileOk
        #
        # MainForm
        #
        self.ClientSize = System.Drawing.Size(284, 133)
        self.Controls.Add(self._button1)
        self.Name = "MainForm"
        self.Text = "test5"
        self.ResumeLayout(False)


    def Button1Click(self, sender, e):
        self._saveFileDialog1.ShowDialog()

    def SaveFileDialog1FileOk(self, sender, e):
        print self._saveFileDialog1.FileName

実行結果は以下の通り。


▲起動画面

▲ファイル保存ダイアログを開く

▲ファイルを指定してOKを押すとダイアログは閉じる