2012-03-12 57 views
1

我需要有關從窗體訪問類的幫助。如何將類加載到表單中並訪問它

所以我會把我的代碼,所以你可以看到我的意思。

所以我做了幾個班。例如:

public class Landscape 
{ 
    public DataGridView grid; 

    public void init() 
    { 
     grid = new DataGridView(); 
     // 
     // grid 
     // 
     grid.AllowUserToAddRows = false; 
     grid.AllowUserToDeleteRows = false; 
     grid.AllowUserToResizeColumns = false; 
     grid.AllowUserToResizeRows = false; 
     ... 
     grid.AutoSizeColumnsMode = grid.Size = new System.Drawing.Size(790, 427); 
     grid.TabIndex = 0; 
    } 
} 

所以基本上這會讓我datagridview在我的窗體上。

當我創建形式:

public partial class MyScreen: Form 
{ 
    public MyScreen() 
    { 
     InitializeComponent(); 
     Landscape land=new Landscape(); 
     land.init(); //this should draw me datagrid on my form 
    } 
} 

不應該這個代碼給我畫我的DataGrid到形式?

如何實現這一目標?

你的意思是這樣的:

public partial class MyScreen: Form 
{ 
    public MyScreen() 
    { 
     InitializeComponent(); 
     Landscape land = new Landscape(); 
     this.Controls.Add(land.grid); 
     land.init(); 
    } 
} 

但它不工作...

+0

感謝您的編輯奧利弗。 – 2012-03-12 22:36:43

+0

它不起作用,因爲您在將控件集合添加到控件集合(並且當時仍爲「空」)後使用'init()'創建網格。先調用'init'!或者更好地在'Landscape'的構造函數中初始化網格。 '公共景觀(){網格=新的DataGridView(); ...} – 2012-03-12 22:36:56

回答

2

沒有,因爲你剛剛創建一個類中的數據網格視圖,但不會添加到窗體控件。添加行

land.init(); 
this.Controls.Add(land.grid); 

將控件添加到窗體

+0

我剛剛編輯我的問題 – 2012-03-12 22:32:56

+0

需要添加控制後,它已經initalised – Ben 2012-03-12 22:34:05

+0

是的就是這樣。謝謝! – 2012-03-12 22:35:47

相關問題