1

現在、出力ファイルを扱っています。プログラムが他のことを行う前に、ユーザーに出力ファイルを保存するように要求するプログラムを作成中です。目的は、プログラムが結果をこの出力ファイルに書き込むことです。ボタンのクリックで出力ファイル ダイアログを表示することができました。プログラムが初期化されるとすぐに、出力ファイルダイアログでユーザーにプロンプ​​トを表示する方法はありますか?

ボタンによるコード出力ファイル:

namespace open_document
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFile = new OpenFileDialog();
            openFile.Filter = "Text Files | *.txt";
            openFile.ShowDialog();          
            StreamReader infile = File.OpenText(openFile.FileName);

        }

    }
}
4

4 に答える 4

2

要件に応じて、またはのLoadイベントを使用してみませんか。FormPage

デザイナー:

this.Load += new System.EventHandler(this.MainForm_Load);

コード:

private void MainForm_Load(object sender, EventArgs e)
{   
    OpenFileDialog openFile = new OpenFileDialog();
    openFile.Filter = "Text Files | *.txt";
    openFile.ShowDialog();          
    StreamReader infile = File.OpenText(openFile.FileName);
    // ... 
}
于 2012-10-23T17:50:46.653 に答える
1

これにより、フォームが読み込まれる前にコードが実行されます。

static class Program
{
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);

        OpenFileDialog openFile = new OpenFileDialog();
        openFile.Filter = "Text Files | *.txt";
        openFile.ShowDialog();          
        StreamReader infile = File.OpenText(openFile.FileName);
        ...

        Application.Run(new Form1());
    }
}
于 2012-10-23T18:29:04.133 に答える
0

OnShownを使用できます。

protected override void OnShown(EventArgs e)
{
    base.OnShown(e);
    OpenFileDialog openFile = new OpenFileDialog();                 
    openFile.Filter = "Text Files | *.txt";                 
    openFile.ShowDialog();                           
    StreamReader infile = File.OpenText(openFile.FileName);   // Don't leave this open!
}
于 2012-10-23T17:50:36.353 に答える
0

おそらく最善のオプションは、このハンドラーからパラメーターを受け取らないメソッドにコードを抽出し(イベントが渡すものは何も必要ありません)、フォームのコンストラクターまたはLoadイベントで呼び出すことです。

于 2012-10-23T17:50:47.833 に答える