2014-06-08 63 views
0

我正嘗試從另一個表單訪問我的MainForm。此控件是FlowLayoutPanel,我已將其訪問修飾符設置爲Public。我不知道爲什麼我不能從另一種形式訪問它,因爲這種方法在過去一直適用於我。即使將修飾符設置爲PUBLIC,也無法訪問另一個表單上的控件

MainForm.cs:

void button1_Click(object sender, EventArgs e) 
{ 
    using(var editor = new Editor()) 
    { 
     editor.ShowDialog(); 
    } 
} 

Editor.cs:

void button1_Click(object sender, EventArgs e) 
{ 
    int count = MainForm.flow.Count; 
} 

爲什麼我不能訪問從另一個形式是控制 - 即使其修改設置爲public

+0

是MainForm的一個實例變量或類你的MainForm的名字? –

+0

MainForm是實際的表單。我厭倦了Form1作爲「主要形式」。 –

+0

但它只是類的名稱,或者你有一個稱爲MainForm的變量是對該表單的引用嗎? –

回答

2

您正在訪問控制/屬性錯誤。

你應該這樣做。

MainForm.cs

private void button1_Click(object sender, EventArgs e) 
{ 
    var frm = new Editor(); 
    frm.ShowDialog(this); 
} 

Editor.cs

private void button1_Click(object sender, EventArgs e) 
{ 
    var f = (this.Owner as MainForm); 
    int count = f.flow.Count; 
    MessageBox.Show(count.ToString()); 
}