在程序启动时提示用户输出文件对话框(初始化)

时间:2012-10-23 17:47:18

标签: c# winforms openfiledialog

我目前正在使用输出文件。我正在构建一个程序,要求用户在程序执行任何其他操作之前保存输出文件。目的是程序将结果写入此输出文件。我已经能够通过单击按钮显示输出文件对话框。一旦程序初始化,是否有提示用户输出文件对话框?

代码输出文件通过按钮:

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 个答案:

答案 0 :(得分:2)

为什么不根据您的要求使用LoadForm的{​​{1}}事件:

设计

Page

代码:

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

答案 1 :(得分: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());
    }
}

答案 2 :(得分: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!
}

答案 3 :(得分:0)

你最好的选择可能是从这个处理程序中提取代码到一个不带参数的方法(你不需要事件传递的任何东西),然后在构造函数或表单的Load事件中调用它