首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >构建和使用Scintilla.NET存在的问题

构建和使用Scintilla.NET存在的问题
EN

Stack Overflow用户
提问于 2011-04-08 23:08:25
回答 3查看 823关注 0票数 1

为了解决兼容性问题,我正在使用/构建Scintilla.NET,并将项目切换到.NET 2.0。

它可以工作,但是当我单击新的制表符按钮时,会得到一个错误,上面写着:

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

这个问题出现在这个代码中:

代码语言:javascript
复制
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);
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-08 23:14:18

问题是您还没有初始化ScinList。类的字段被初始化为其默认值,在本例中为null

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

代码语言:javascript
复制
public List<ScintillaNet.Scintilla> ScinList = new List<ScintillaNet.Scintilla>();

..。或者在构造函数中..。

代码语言:javascript
复制
public CLASSNAMEHERE()
{
    ScinList = new List<ScintillaNet.Scintilla>();
}

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

票数 4
EN

Stack Overflow用户

发布于 2011-04-08 23:13:16

问题是您没有初始化ScinList

改变这一点:

代码语言:javascript
复制
public List<ScintillaNet.Scintilla> ScinList;

对此:

代码语言:javascript
复制
public List<ScintillaNet.Scintilla> ScinList = new List<ScintillaNet.Scintilla>();
票数 2
EN

Stack Overflow用户

发布于 2011-04-08 23:14:16

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

代码语言:javascript
复制
public List <ScintillaNet.Scintilla> ScinList;

但是,您从未真正创建一个新列表并将其分配给您的字段:

代码语言:javascript
复制
public List <ScintillaNet.Scintilla> ScinList = new List<ScintillaNet.Scintilla>();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5601651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档