2012-10-18 132 views
0

我使用可視化編輯器設計了C#.NET中的Windows窗體。我想從另一種形式調用此表單。但是表單不能從其他表單中檢測到。從被稱爲DataList控件的設計和主要的代碼如下 -自定義窗體不顯示

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Data.SqlClient; 
using System.Drawing; 
using System.Text; 
using System.Windows.Forms; 

namespace DataList 
{ 
    public partial class DataList : Form 
    { 
     //code, functions etc. 
    } 
} 

當我把它使用DataList.Show();另一種形式它突出DataList控件與錯誤 - 名稱DataList控件不存在的當前上下文。

什麼可能是錯的?

+3

我們可以看到該窗體被調用的代碼嗎?我的猜測會是一個不同的命名空間... – LightStriker

+0

不區分類型和對象是vb.net程序員的痛苦。 C#不會允許它。 –

+0

是它的一個不同的命名空間。 –

回答

2

DataList是你不能直接調用任何非靜態函數/方法的類。

您需要創建它的一個實例。

(new DataList()).Show(); 

或者可能

DataList myDataList; 
myDataList = new DataList(); 
myDataList.Show(); 

// Do whatever you want? 

如果在情況下,它仍然失敗,那麼命名空間的問題。

+0

按照你的建議,它現在給我了 - 無法找到類型或名稱空間名稱'DataList'(你是否缺少使用指令或程序集引用?) –

+0

@SamikSengupta這就是他們所說的命名空間問題。 –

+0

謝謝大家。我通過將所有表單重新定位在一個通用名稱空間下而不是不同的名稱空間來修復它。它正在工作。 –

0

不要使用NameSpace Name和Class Name SAME。

轉到與此Link

0

使用靜態的類,然後你可以運行class.show();

+0

如果它繼承了一個非靜態類,你可以讓它成爲靜態類嗎? –

+0

你應該從一個對象派生它,以將一個非靜態類繼承到靜態類。 –