2015-11-02 75 views
0

我在C#中有一個軟件,它有一個主窗體(意思是當你像幾乎每個軟件一樣啓動一個軟件時打開的窗體)。但是,主窗體將打開一個名爲ProjectFiles的窗體。我想知道是否可以從主窗體中將文件添加到ProjectFiles中的listView。我曾嘗試在互聯網上搜索如何做到這一點,但每個人都一直在問如何以不同的方式做到這一點。我也試過沒有幫助,所以這裏是我的代碼,但問題是當我使用這段代碼時,軟件將停止響應。如何使用C#將主文件添加到列表視圖?

主要形式:

public string[] lines { get; set; } 
void projectFilesToolStripMenuItem1_Click(object sender, EventArgs e) 
{ 
    if (this.parentForm == null) 
     { 
     return; 
     } 
    if(opfd.ShowDialog()==DialogResult.OK) 
    { 
     string[]lines = File.ReadAllLines(opfd.FileName); 
    } 
} 

ProjectFiles:

void label1_Click(object sender, EventArgs e) 
{ 
    MainForm mf = new MainForm(); 
    { 
     string[] lines = File.ReadAllLines(mf.lines.ToString()); 
     foreach (string line in lines) 
     { 
      listView1.Items.Add(line); 
     } 
    } 
} 

任何幫助不勝感激。謝謝!

編輯: 我被要求更準確地發佈錯誤信息。就像我上面所說的那樣,軟件變灰了,一個消息框顯示它已經停止響應。如果這不夠清楚,請告訴我。

編輯:我已經嘗試了下面的asnwers,但軟件仍然繼續這樣做。這似乎太軟件處理。

+0

只需在第二個窗體上創建一個允許傳遞文件或其他內容的方法,那麼該窗體就可以修改自己的控件。否則,「它崩潰」是一個可怕的問題描述。 – Plutonix

+0

您在項目文件中生成一個新的mainform。記住當你創建一個新對象時,它是一個全新的對象實例,它通過創建一個新的MainForm()然後訪問新的對象,它在你尋找事物的位置是空白的,因此它崩潰的原因。我的猜測是你得到某種空錯誤。如果這是不正確的,至少發佈錯誤,所以我們可以嘗試和協助。 – Nikerym

+0

親愛的蘭登,你想從主窗體添加列表項,或者你只是試圖顯示ProjectFiles窗體並填充其中的列表視圖?你的問題真的很混亂。 –

回答

-1

首先,當您調用ShowDialog()來顯示錶單時,此語句後的任何代碼將不會執行,直到該表單被關閉。見this

因此備註部分,它是不可能在你的情況文件添加到從MainForm中的ProjectFiles列表視圖(的ShowDialog)

但是,如果你需要做的是什麼;

  1. 變化ProjectFiles到公共
  2. ListView1的的訪問修飾符保持指針ProjectFiles形成如圖MainForm的一個成員變量

    ProjectFiles theProjectFiles =新ProjectFiles();

  3. 顯示代替.ShowDialog()

    theProjectFiles.Show的ProjectFiles與.Show(形成)();

  4. 只需使用ListView1的在ProjectFiles形成像往常一樣:

    theProjectFiles.listView1.Add(...);

相關問題