C# 构建和使用闪烁体.NET时出现的问题

C# 构建和使用闪烁体.NET时出现的问题,c#,winforms,visual-studio-2010,.net-2.0,C#,Winforms,Visual Studio 2010,.net 2.0,由于兼容性问题,我正在使用/building并将项目切换到.NET2.0 它可以工作,但当我单击“新建选项卡”按钮时,会出现一个错误,显示: 对象引用未设置为 对象的实例 此代码中出现问题: ScintillaNet.Scintilla currentScin; Stream Stream1; public List <ScintillaNet.Scintilla> ScinList; //Code for various events private void New_Cli

由于兼容性问题,我正在使用/building并将项目切换到.NET2.0

它可以工作,但当我单击“新建选项卡”按钮时,会出现一个错误,显示:

对象引用未设置为 对象的实例

此代码中出现问题:

ScintillaNet.Scintilla currentScin;
Stream Stream1;

public List <ScintillaNet.Scintilla> ScinList;

//Code for various events

private void New_Click(object sender, EventArgs e)
{
    TabPage tabp = new TabPage();
    ScintillaNet.Scintilla scin = new ScintillaNet.Scintilla();
    scin.Dock = DockStyle.Fill;

    scin.Margins[0].Width = 20;
    scin.ConfigurationManager.CustomLocation = "My Styles";
    scin.ConfigurationManager.Language = "lua";

    scin.Parent = tabp;

    // This line throws "Object reference not set to an instance of an object."
    ScinList.Add(scin);

    tabControl1.TabPages.Add(tabp);
}
闪烁体。闪烁体电流scin;
溪流1;
公开名单;
//各种活动的代码
私有无效新建\u单击(对象发送者,事件参数e)
{
TabPage tabp=新TabPage();
闪烁体。闪烁体scin=新闪烁体。闪烁体();
scin.Dock=DockStyle.Fill;
页边空白[0]。宽度=20;
scin.ConfigurationManager.CustomLocation=“我的风格”;
scin.ConfigurationManager.Language=“lua”;
scin.Parent=tabp;
//这一行抛出“对象引用未设置为对象的实例”
ScinList.Add(scin);
tabControl1.TabPages.Add(tabp);
}

问题是您没有初始化
ScinList

更改此项:

public List<ScintillaNet.Scintilla> ScinList;
公共列表列表;
为此:

public List<ScintillaNet.Scintilla> ScinList = new List<ScintillaNet.Scintilla>();
public List ScinList=new List();

问题是您没有初始化
ScinList

更改此项:

public List<ScintillaNet.Scintilla> ScinList;
公共列表列表;
为此:

public List<ScintillaNet.Scintilla> ScinList = new List<ScintillaNet.Scintilla>();
public List ScinList=new List();

看起来您定义了公共字段列表:

public List <ScintillaNet.Scintilla> ScinList;
公共列表列表;
但您从未实际创建新列表并将其分配给您的字段:

public List <ScintillaNet.Scintilla> ScinList = new List<ScintillaNet.Scintilla>();
public List ScinList=new List();

看起来您定义了公共字段列表:

public List <ScintillaNet.Scintilla> ScinList;
公共列表列表;
但您从未实际创建新列表并将其分配给您的字段:

public List <ScintillaNet.Scintilla> ScinList = new List<ScintillaNet.Scintilla>();
public List ScinList=new List();

问题在于您尚未初始化
ScinList
。类的字段初始化为其默认值,在本例中为
null

您需要在某个地方初始化它,或者在声明它的地方

public List<ScintillaNet.Scintilla> ScinList = new List<ScintillaNet.Scintilla>();
public List ScinList=new List();
。。。或者在构造函数中

public CLASSNAMEHERE()
{
    ScinList = new List<ScintillaNet.Scintilla>();
}
public CLASSNAMEHERE()
{
ScinList=新列表();
}

如果这一行确实出现在您的代码中,请使用这样做的代码编辑您的问题。

问题在于您尚未初始化
ScinList
。类的字段初始化为其默认值,在本例中为
null

您需要在某个地方初始化它,或者在声明它的地方

public List<ScintillaNet.Scintilla> ScinList = new List<ScintillaNet.Scintilla>();
public List ScinList=new List();
。。。或者在构造函数中

public CLASSNAMEHERE()
{
    ScinList = new List<ScintillaNet.Scintilla>();
}
public CLASSNAMEHERE()
{
ScinList=新列表();
}

如果这一行确实出现在您的代码中,请使用代码编辑您的问题。

我不知道您必须初始化列表。。我想不出我为什么不这么做。谢谢,我没意识到你必须初始化列表。。我想不出我为什么不这么做。谢谢