2012-10-18 99 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

你应该从一个对象派生它,以将一个非静态类继承到静态类。 –