2012-10-23 43 views
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); 

     } 

    } 
} 
+0

你需要關閉你的'StreamReader'。 – Adam

+0

它是WinForms?如果是,請添加標籤並嘗試表格載入事件 – prashanth

+0

您是否在問什麼事件可用於連接?你可能想要你的'窗體'的加載事件:http://msdn.microsoft.com/en-us/library/system.windows.forms.form.load.aspx – Sepster

回答

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); 
    // ... 
} 
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! 
} 
0

你最好的選擇很可能是從該處理程序的代碼提取到不帶參數的方法(你不需要任何的事件經過,無論如何),然後調用它在構造函數或窗體的Load事件中。

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()); 
    } 
} 
相關問題